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)