hungerlib 2.4.dev0__py3-none-any.whl → 2.5.dev0__py3-none-any.whl
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/addons/__init__.py +8 -2
- hungerlib/addons/converters.py +13 -0
- hungerlib/addons/snapshot.py +34 -0
- hungerlib/servers/generic.py +40 -0
- {hungerlib-2.4.dev0.dist-info → hungerlib-2.5.dev0.dist-info}/METADATA +1 -1
- {hungerlib-2.4.dev0.dist-info → hungerlib-2.5.dev0.dist-info}/RECORD +9 -8
- hungerlib/addons/lag.py +0 -25
- {hungerlib-2.4.dev0.dist-info → hungerlib-2.5.dev0.dist-info}/WHEEL +0 -0
- {hungerlib-2.4.dev0.dist-info → hungerlib-2.5.dev0.dist-info}/licenses/LICENSE +0 -0
- {hungerlib-2.4.dev0.dist-info → hungerlib-2.5.dev0.dist-info}/top_level.txt +0 -0
hungerlib/addons/__init__.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from .colormap import ColorMap, MC_COLOR_MAP, ASCII_COLOR_MAP
|
|
2
2
|
from .countdown import runCountdownEvents, waitForOnline, waitForOffline
|
|
3
|
-
from .
|
|
3
|
+
from .snapshot import Snapshot
|
|
4
4
|
from .scheduler import snapSchedule, secsUntil, minsUntil
|
|
5
5
|
from .validation import validateAll
|
|
6
|
+
from .converters import *
|
|
6
7
|
|
|
7
8
|
__all__ = [
|
|
8
9
|
'ColorMap',
|
|
@@ -11,9 +12,14 @@ __all__ = [
|
|
|
11
12
|
'runCountdownEvents',
|
|
12
13
|
'waitForOnline',
|
|
13
14
|
'waitForOffline',
|
|
14
|
-
'
|
|
15
|
+
'Snapshot',
|
|
15
16
|
'snapSchedule',
|
|
16
17
|
'secsUntil',
|
|
17
18
|
'minsUntil',
|
|
18
19
|
'validateAll',
|
|
20
|
+
'converters',
|
|
21
|
+
'mb_gb',
|
|
22
|
+
'gb_mb',
|
|
23
|
+
'mib_gib',
|
|
24
|
+
'gib_mib',
|
|
19
25
|
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Names are in "from-to" format. Example: mb_gb() means megabyte to gigabyte.
|
|
2
|
+
|
|
3
|
+
def mb_gb(mb, floor=False):
|
|
4
|
+
return mb / 1000 if not floor else mb // 1000
|
|
5
|
+
|
|
6
|
+
def gb_mb(gb):
|
|
7
|
+
return gb * 1000
|
|
8
|
+
|
|
9
|
+
def mib_gib(mib, floor=False):
|
|
10
|
+
return mib / 1024 if not floor else mib // 1024
|
|
11
|
+
|
|
12
|
+
def gib_mib(gib):
|
|
13
|
+
return gib * 1024
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class Snapshot:
|
|
2
|
+
def __init__(self, Server, gib=False):
|
|
3
|
+
self.Server = Server
|
|
4
|
+
g = 1
|
|
5
|
+
if gib:
|
|
6
|
+
g = 1024
|
|
7
|
+
|
|
8
|
+
# generic
|
|
9
|
+
self.ram = self.Server.getRAM() / g
|
|
10
|
+
self.cpu = self.Server.getCPU()
|
|
11
|
+
self.network_in = self.Server.getNetworkIn() / g
|
|
12
|
+
self.network_out = self.Server.getNetworkOut() / g
|
|
13
|
+
self.uptime = self.Server.getUptime()
|
|
14
|
+
self.uptime_formatted = self.Server.getUptime(True)
|
|
15
|
+
|
|
16
|
+
# server-specific
|
|
17
|
+
self.tps = self.Server.getTPS() if hasattr(self.Server, 'getTPS') else None
|
|
18
|
+
self.players = self.Server.getPlayers() if hasattr(self.Server, 'getPlayers') else None
|
|
19
|
+
|
|
20
|
+
def __str__(self):
|
|
21
|
+
base = (
|
|
22
|
+
f'Server: {self.Server.name}\n'
|
|
23
|
+
f'Uptime: {self.uptime_formatted}\n'
|
|
24
|
+
f'RAM: {self.ram}\n'
|
|
25
|
+
f'CPU: {self.cpu}\n'
|
|
26
|
+
f'Network (in): {self.network_in}\n'
|
|
27
|
+
f'Network (out): {self.network_out}'
|
|
28
|
+
)
|
|
29
|
+
if self.tps is not None:
|
|
30
|
+
base += f'\nTPS: {self.tps}'
|
|
31
|
+
if self.players is not None:
|
|
32
|
+
base += f'\nOnline players: {self.players}'
|
|
33
|
+
|
|
34
|
+
return base
|
hungerlib/servers/generic.py
CHANGED
|
@@ -162,6 +162,46 @@ class GenericServer:
|
|
|
162
162
|
def runSchedule(self, schedule_id):
|
|
163
163
|
return self.panel.schedules.run(self.server_id, schedule_id)
|
|
164
164
|
|
|
165
|
+
def enableSchedule(self, schedule_id):
|
|
166
|
+
payload = {"is_active": True}
|
|
167
|
+
return self.updateSchedule(schedule_id, payload)
|
|
168
|
+
def disableSchedule(self, schedule_id):
|
|
169
|
+
payload = {"is_active": False}
|
|
170
|
+
return self.updateSchedule(schedule_id, payload)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def getSchedule(self, schedule_id: int):
|
|
174
|
+
"""
|
|
175
|
+
Returns a dict containing all schedule attributes for the given schedule_id.
|
|
176
|
+
Works with raw ScheduleAPI responses.
|
|
177
|
+
"""
|
|
178
|
+
resp = self.panel.schedules.list(self.server_id)
|
|
179
|
+
data = resp.json()
|
|
180
|
+
for item in data.get("data", []):
|
|
181
|
+
attr = item.get("attributes", {})
|
|
182
|
+
if attr.get("id") == schedule_id:
|
|
183
|
+
return {
|
|
184
|
+
"id": attr.get("id"),
|
|
185
|
+
"name": attr.get("name"),
|
|
186
|
+
"description": attr.get("description"),
|
|
187
|
+
"is_active": attr.get("is_active"),
|
|
188
|
+
"cron": attr.get("cron"),
|
|
189
|
+
"minute": attr.get("cron", {}).get("minute"),
|
|
190
|
+
"hour": attr.get("cron", {}).get("hour"),
|
|
191
|
+
"day_of_month": attr.get("cron", {}).get("day_of_month"),
|
|
192
|
+
"month": attr.get("cron", {}).get("month"),
|
|
193
|
+
"day_of_week": attr.get("cron", {}).get("day_of_week"),
|
|
194
|
+
"next_run_at": attr.get("next_run_at"),
|
|
195
|
+
"last_run_at": attr.get("last_run_at"),
|
|
196
|
+
"only_when_online": attr.get("only_when_online"),
|
|
197
|
+
"is_processing": attr.get("is_processing"),
|
|
198
|
+
"created_at": attr.get("created_at"),
|
|
199
|
+
"updated_at": attr.get("updated_at"),
|
|
200
|
+
"tasks": attr.get("relationships", {}).get("tasks", {}).get("data", [])
|
|
201
|
+
}
|
|
202
|
+
return None
|
|
203
|
+
|
|
204
|
+
|
|
165
205
|
|
|
166
206
|
# health snapshot
|
|
167
207
|
def snapshot(self):
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
hungerlib/__init__.py,sha256=tgUaYt_H1BUKCvIGz0KHhgsDg6AMY9UiEGPBNHnq1kg,708
|
|
2
2
|
hungerlib/logger.py,sha256=-2amipjJi2tLY5RwG0Poe0Mr2Tr_Sq5aFC0R574Zjqc,4140
|
|
3
3
|
hungerlib/panel.py,sha256=WMKBVh9MUM1KEYbvYwLFVzLCMZW4Dopfcxs09FEvfhU,2123
|
|
4
|
-
hungerlib/addons/__init__.py,sha256=
|
|
4
|
+
hungerlib/addons/__init__.py,sha256=HeFDhk3hAsBDdLyv9pEaJn3lHYGFGOGEzDTUL3S1XRA,591
|
|
5
5
|
hungerlib/addons/colormap.py,sha256=W06Y9Pd8jGiXUbCNyaCmh8_pN_40Gl04qO7yWulEarw,1508
|
|
6
|
+
hungerlib/addons/converters.py,sha256=e6ItLU08DLfPjOZzQDYMOK6X6vBbklzcMKy8HVKMEVI,318
|
|
6
7
|
hungerlib/addons/countdown.py,sha256=fE922-W9VTTMMkeVKLQfuTR6CK0A4sHkrPSOU2tbXP0,2601
|
|
7
|
-
hungerlib/addons/lag.py,sha256=Ch-E781HRcmCl9CNb3Wx2rg9NyMQ_30tTYLP2RPXONU,963
|
|
8
8
|
hungerlib/addons/mchelpers.py,sha256=PuENTlzwPIBHymlmdynMK28CCy_l8x8yzJSzaguvMMM,3789
|
|
9
9
|
hungerlib/addons/scheduler.py,sha256=40WcKF5Bc4Fmx-pviZuWA4GkNwrn8RP_TupA00SwD2A,890
|
|
10
|
+
hungerlib/addons/snapshot.py,sha256=jswR8IIL1_GxuM7ouAYERgWXAR7tyogRz1pn0kdyjIw,1166
|
|
10
11
|
hungerlib/addons/validation.py,sha256=QKVrp-NriH9ZkMNwwjpPRvLQAbFtTd4N0Sq_yz63UUg,250
|
|
11
12
|
hungerlib/api/__init__.py,sha256=xuPbWBXVTkr9Jtcmvk8PPiVvi8HDxrIOmb_gOcDZy-M,336
|
|
12
13
|
hungerlib/api/backups.py,sha256=P_3b4_UPF7y9LDpfyKPh3TpHDIrTm8k_Z3xGmvBE5Qk,730
|
|
@@ -16,10 +17,10 @@ hungerlib/api/filemanager.py,sha256=kB5NP3ELQzY1uW6JWVN1g4dekVl8Kk-u9cK7N5dsg3w,
|
|
|
16
17
|
hungerlib/api/schedule.py,sha256=3gdl0jiIOScdVXWy4aOef-KIoKqUopbI8b1dPgXf5Vg,953
|
|
17
18
|
hungerlib/api/startup.py,sha256=hKhBjpLMVYa3jjq6ahqm2N32B_fu-bZnOJTZ-P57v4M,434
|
|
18
19
|
hungerlib/servers/__init__.py,sha256=iL2KajxhGHLdvGzEujTaEQmj1wvoHEB5f23YMu1gpyQ,133
|
|
19
|
-
hungerlib/servers/generic.py,sha256=
|
|
20
|
+
hungerlib/servers/generic.py,sha256=nMT2fdPOcoIN6ck_S4rUdj6ZXgMb0D-7DGhn7EYPmHQ,8350
|
|
20
21
|
hungerlib/servers/minecraft.py,sha256=DJ2GwJ4KLnZsxVN66YsCZgQfgMizcKp-9Tcdze23tfg,2541
|
|
21
|
-
hungerlib-2.
|
|
22
|
-
hungerlib-2.
|
|
23
|
-
hungerlib-2.
|
|
24
|
-
hungerlib-2.
|
|
25
|
-
hungerlib-2.
|
|
22
|
+
hungerlib-2.5.dev0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
23
|
+
hungerlib-2.5.dev0.dist-info/METADATA,sha256=5obh6cG-3jHKHgHCgDQcPkWm7C7ZPj3o8lfD2e7C5q8,1514
|
|
24
|
+
hungerlib-2.5.dev0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
25
|
+
hungerlib-2.5.dev0.dist-info/top_level.txt,sha256=uHBMIM8b2Gt6daNkDF4uw-M2Hm2IpIVw1jOK9wC0fNQ,10
|
|
26
|
+
hungerlib-2.5.dev0.dist-info/RECORD,,
|
hungerlib/addons/lag.py
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
def checkLag(server, ram, cpu, nwi, nwo, tps):
|
|
2
|
-
"""
|
|
3
|
-
Pure lag check.
|
|
4
|
-
Returns a tuple: (lag_detected: bool, reasons: list[str])
|
|
5
|
-
"""
|
|
6
|
-
reasons = []
|
|
7
|
-
|
|
8
|
-
currentRAM = server.getRAM(gb=True)
|
|
9
|
-
currentCPU = server.getCPU()
|
|
10
|
-
currentNWI = server.getNetworkIn(gb=True)
|
|
11
|
-
currentNWO = server.getNetworkOut(gb=True)
|
|
12
|
-
currentTPS = server.getTPS() if hasattr(server, "getTPS") else None
|
|
13
|
-
|
|
14
|
-
if currentRAM is not None and currentRAM >= ram:
|
|
15
|
-
reasons.append(f"RAM: {currentRAM}GB")
|
|
16
|
-
if currentCPU is not None and currentCPU >= cpu:
|
|
17
|
-
reasons.append(f"CPU: {currentCPU}%")
|
|
18
|
-
if currentNWI is not None and currentNWI >= nwi:
|
|
19
|
-
reasons.append(f"Network Inbound: {currentNWI}GB")
|
|
20
|
-
if currentNWO is not None and currentNWO >= nwo:
|
|
21
|
-
reasons.append(f"Network Outbound: {currentNWO}GB")
|
|
22
|
-
if currentTPS is not None and currentTPS <= tps:
|
|
23
|
-
reasons.append(f"TPS: {currentTPS}")
|
|
24
|
-
|
|
25
|
-
return (len(reasons) > 0, reasons)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|