import os import json from datetime import datetime import argparse from utils import get_blog_template_conf from website_config import configs_sites # Configuration des arguments de la ligne de commande parser = argparse.ArgumentParser(description="Générer un flux Atom des articles.") parser.add_argument("blog", help="Le nom du dossier de blog.") args = parser.parse_args() template_content = get_blog_template_conf(args.blog) website_ndd = template_content['NDD'] # Charger les données du fichier articles_info.json json_file = f'sources/{args.blog}/build/articles_info.json' with open(json_file, 'r', encoding='utf-8') as f: articles_info = json.load(f) # Trier les articles par date décroissante sorted_articles = sorted(articles_info.values(), key=lambda x: x['date'], reverse=True) # Génération du flux Atom with open(f"html-websites/{args.blog}/feed/index.xml", "w", encoding="utf-8") as f: f.write('\n') f.write('\n') f.write(f' Flux Atom des articles de {args.blog}\n') f.write(f' \n') f.write(f' {datetime.fromisoformat(sorted_articles[0]["date"]).strftime("%Y-%m-%dT%H:%M:%S+00:00")}\n') f.write(' tag:' + website_ndd + ',2023:/feed\n') f.write(' \n') f.write(f' {configs_sites[args.blog]["AUTHOR"]}\n') f.write(f' {configs_sites[args.blog]["EMAIL"]}\n') f.write(' \n') f.write(f' \n') # Boucle des articles for article in sorted_articles: f.write(' \n') f.write(f' tag:{website_ndd},2023:{article["slug"]}\n') f.write(f' {article["title"]}\n') f.write(f' \n') f.write(' \n') f.write(f' {article.get("extract", "")}\n') f.write(f' {datetime.fromisoformat(article["date"]).strftime("%Y-%m-%dT%H:%M:%S+00:00")}\n') f.write(f' {datetime.fromisoformat(article["date"]).strftime("%Y-%m-%dT%H:%M:%S+00:00")}\n') f.write(' \n') f.write(f' {configs_sites[args.blog]["AUTHOR"]}\n') f.write(f' {configs_sites[args.blog]["EMAIL"]}\n') f.write(' \n') f.write(' \n') f.write('')