summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBotond Hende <nettingman@gmail.com>2025-12-21 00:04:09 +0100
committerBotond Hende <nettingman@gmail.com>2025-12-21 00:04:09 +0100
commitb189fb816abf0e7b0f7c85f8b465916d8ba5ff63 (patch)
treecc4edd4dd25092d1920ef0f173fdc687d3cbd1d8
parentbe2a18e9a29411a6ba0388d1d5a7692a8058fbef (diff)
comics wipHEADmaster
-rw-r--r--comic/issues/001/comic.pngbin0 -> 243107 bytes
-rw-r--r--comic/issues/001/meta.json5
-rw-r--r--modules/comic_generate.py46
3 files changed, 51 insertions, 0 deletions
diff --git a/comic/issues/001/comic.png b/comic/issues/001/comic.png
new file mode 100644
index 0000000..f3e10c6
--- /dev/null
+++ b/comic/issues/001/comic.png
Binary files differ
diff --git a/comic/issues/001/meta.json b/comic/issues/001/meta.json
new file mode 100644
index 0000000..34d084a
--- /dev/null
+++ b/comic/issues/001/meta.json
@@ -0,0 +1,5 @@
+{
+ "title" : "Hestia: the homemade home assistant",
+ "publish_date" : "2025-01-29",
+ "description" : "Hestia: the homemade home assistant"
+}
diff --git a/modules/comic_generate.py b/modules/comic_generate.py
new file mode 100644
index 0000000..de8fad8
--- /dev/null
+++ b/modules/comic_generate.py
@@ -0,0 +1,46 @@
+import datetime
+import email.utils
+import json
+import os.path
+import shutil
+import jinja2
+
+from ..config import Config
+
+META_FILE_NAME = "meta.json"
+IMAGE_FILE_NAME = "comic.png"
+
+PUBLISH_DATE_KEY = "publish_date"
+
+
+class Issue:
+ def __init__(self, path: str):
+ self.path = path
+ self.name = os.path.basename(path)
+
+ with open(os.path.join(path, META_FILE_NAME)) as f:
+ self.meta_data = json.load(f)
+
+
+def get_issues(path: str, local: bool) -> list[Issue]:
+ return_list = []
+
+ for directory in os.listdir(path):
+ if directory.endswith(".unpublished") and not local:
+ continue
+
+ return_list.append(Issue(os.path.join(path, directory)))
+
+ return_list.sort(key=lambda post: post.meta_data[PUBLISH_DATE_KEY], reverse=True)
+
+ return return_list
+
+def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
+ if os.path.exists(output_root_path):
+ shutil.rmtree(output_root_path)
+
+ os.mkdir(output_root_path)
+
+ issues = get_issues(Config.POST_SOURCE_DIR, local)
+
+