hungerlib 4.24.dev10__tar.gz → 4.24.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.
Files changed (37) hide show
  1. {hungerlib-4.24.dev10/src/hungerlib.egg-info → hungerlib-4.24.dev11}/PKG-INFO +1 -1
  2. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/pyproject.toml +1 -1
  3. hungerlib-4.24.dev11/src/hungerlib/email/email_templates/restart.html +16 -0
  4. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/email/manager.py +14 -3
  5. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11/src/hungerlib.egg-info}/PKG-INFO +1 -1
  6. hungerlib-4.24.dev10/src/hungerlib/email/email_templates/restart.html +0 -21
  7. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/LICENSE +0 -0
  8. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/README.md +0 -0
  9. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/setup.cfg +0 -0
  10. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/__init__.py +0 -0
  11. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/__init__.py +0 -0
  12. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/backups.py +0 -0
  13. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/command.py +0 -0
  14. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/databases.py +0 -0
  15. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/filemanager.py +0 -0
  16. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/schedule.py +0 -0
  17. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/api/startup.py +0 -0
  18. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/bridgeclient.py +0 -0
  19. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/configloader.py +0 -0
  20. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/discord_bot_webhook.py +0 -0
  21. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/email/__init__.py +0 -0
  22. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/email/client.py +0 -0
  23. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/email/message.py +0 -0
  24. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/messagerouter.py +0 -0
  25. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/panel.py +0 -0
  26. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/servers/__init__.py +0 -0
  27. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/servers/generic.py +0 -0
  28. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/servers/minecraft.py +0 -0
  29. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/utils/__init__.py +0 -0
  30. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/utils/exceptions.py +0 -0
  31. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/utils/time.py +0 -0
  32. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/utils/utils.py +0 -0
  33. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib/validator.py +0 -0
  34. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib.egg-info/SOURCES.txt +0 -0
  35. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib.egg-info/dependency_links.txt +0 -0
  36. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib.egg-info/requires.txt +0 -0
  37. {hungerlib-4.24.dev10 → hungerlib-4.24.dev11}/src/hungerlib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 4.24.dev10
3
+ Version: 4.24.dev11
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 = "4.24-dev.10"
10
+ version = "4.24-dev.11"
11
11
  description = "Powerful automation library for Pterodactyl."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.9"
@@ -0,0 +1,16 @@
1
+ <div style="background:#fff; border-radius:10px; padding:20px; max-width:600px; margin:0 auto;
2
+ box-shadow:0 6px 18px rgba(0,0,0,0.06); font-family: Arial, sans-serif;">
3
+
4
+ <h1 style="color:#2b6df6; margin-bottom:20px;">
5
+ Server {{ server_name }} Restart Scheduled
6
+ </h1>
7
+
8
+ <p style="color:#333; font-size:16px; line-height:1.6;">
9
+ The server <strong>{{ server_name }}</strong> will restart at <strong>{{ time }}</strong>.
10
+ </p>
11
+
12
+ <p style="font-size:13px; color:#666; margin-top:12px;">
13
+ Triggered by: {{ trigger }}
14
+ </p>
15
+
16
+ </div>
@@ -3,16 +3,26 @@ import pathlib
3
3
  from cloudflare import Cloudflare
4
4
  from .message import Email
5
5
 
6
- TEMPLATE_DIR = pathlib.Path(__file__).resolve().parent / 'email_templates'
6
+ # Templates live in: src/hungerlib/email/email_templates
7
+ TEMPLATE_DIR = pathlib.Path(__file__).resolve().parent / "email_templates"
7
8
 
8
9
  class EmailManager:
10
+ """
11
+ Backend email system.
12
+ Holds API token and account ID.
13
+ Sends emails created by EmailClient.
14
+ """
15
+
9
16
  def __init__(self, api_token: str, account_id: str):
10
17
  self.client = Cloudflare(api_token=api_token)
11
18
  self.account_id = account_id
12
19
 
20
+ # Jinja2 environment configured for HTML emails
13
21
  self.jinja = Environment(
14
22
  loader=FileSystemLoader(str(TEMPLATE_DIR)),
15
- autoescape=True
23
+ autoescape=False, # Cloudflare rejects escaped HTML
24
+ trim_blocks=False, # preserve whitespace
25
+ lstrip_blocks=False # preserve indentation
16
26
  )
17
27
 
18
28
  def render_template(self, template: str, ctx: dict) -> str:
@@ -20,6 +30,7 @@ class EmailManager:
20
30
  return tmpl.render(**ctx)
21
31
 
22
32
  def send_email(self, user, email: Email) -> bool:
33
+ # Render template if needed
23
34
  if email.template and not email.html:
24
35
  email.html = self.render_template(email.template, email.template_ctx)
25
36
 
@@ -43,4 +54,4 @@ class EmailManager:
43
54
  payload["bcc"] = ",".join(email.bcc)
44
55
 
45
56
  resp = self.client.email_sending.send(**payload)
46
- return bool(getattr(resp, 'delivered', None))
57
+ return bool(getattr(resp, "delivered", None))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 4.24.dev10
3
+ Version: 4.24.dev11
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
@@ -1,21 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>Server Restart</title>
6
- <style>
7
- body { font-family: Arial, sans-serif; background:#f4f6f9; margin:0; padding:20px; }
8
- .card { background:#fff; border-radius:10px; padding:20px; max-width:600px; margin:0 auto; box-shadow:0 6px 18px rgba(0,0,0,0.06); }
9
- h1 { color:#2b6df6; }
10
- p { color:#333; }
11
- .meta { font-size:13px; color:#666; margin-top:12px; }
12
- </style>
13
- </head>
14
- <body>
15
- <div class="card">
16
- <h1>Server {{ server_name }} Restart Scheduled</h1>
17
- <p>The server {{ server_name }} will restart at {{ time }}.</p>
18
- <p class="meta">Triggered by: {{ trigger }}</p>
19
- </div>
20
- </body>
21
- </html>
File without changes
File without changes
File without changes