#!/usr/bin/env python3 import argparse import email.utils from datetime import datetime from common import get_blog_posts parser = argparse.ArgumentParser('rss') parser.add_argument('BLOG_DIR', type=str, help='Directory containing markdown blog posts') parser.add_argument('--limit', default=15, type=int, help='Maximum number of posts to show') parser.add_argument('--title', help='Feed title', required=True) parser.add_argument('--description', help='Feed description', required=True) parser.add_argument('--url', help='Root URL', required=True) parser.add_argument('--blog-path', help='Blog path', required=True) parser.add_argument('--feed-path', help='RSS feed path', required=True) args = parser.parse_args() posts = get_blog_posts(args.BLOG_DIR) posts = posts[0:args.limit] build_date = email.utils.format_datetime(datetime.now().astimezone()) print(f''' {args.title} {args.url}{args.blog_path} en-US {args.description} {build_date} ''') for post in posts: pub_date = email.utils.format_datetime(post['date'].astimezone()) print(f''' {post["title"]} {args.url}{post["href"]} {args.url}{post["href"]} {pub_date}''') if 'description' in post: print(f' {post["description"]}') print(' ') print('') print('')