From b189fb816abf0e7b0f7c85f8b465916d8ba5ff63 Mon Sep 17 00:00:00 2001 From: Botond Hende Date: Sun, 21 Dec 2025 00:04:09 +0100 Subject: comics wip --- modules/comic_generate.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 modules/comic_generate.py (limited to 'modules/comic_generate.py') 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) + + -- cgit v1.2.3-70-g09d2