diff options
| author | Botond Hende <nettingman@gmail.com> | 2025-12-21 00:04:09 +0100 |
|---|---|---|
| committer | Botond Hende <nettingman@gmail.com> | 2025-12-21 00:04:09 +0100 |
| commit | b189fb816abf0e7b0f7c85f8b465916d8ba5ff63 (patch) | |
| tree | cc4edd4dd25092d1920ef0f173fdc687d3cbd1d8 | |
| parent | be2a18e9a29411a6ba0388d1d5a7692a8058fbef (diff) | |
| -rw-r--r-- | comic/issues/001/comic.png | bin | 0 -> 243107 bytes | |||
| -rw-r--r-- | comic/issues/001/meta.json | 5 | ||||
| -rw-r--r-- | modules/comic_generate.py | 46 |
3 files changed, 51 insertions, 0 deletions
diff --git a/comic/issues/001/comic.png b/comic/issues/001/comic.png Binary files differnew file mode 100644 index 0000000..f3e10c6 --- /dev/null +++ b/comic/issues/001/comic.png 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) + + |
