diff options
| author | alex <alex@pdp7.net> | 2026-02-15 19:42:47 +0100 |
|---|---|---|
| committer | alex <alex@pdp7.net> | 2026-02-15 19:42:47 +0100 |
| commit | 6b57ca7b17c003cffa37d00838b6f95b608d0c85 (patch) | |
| tree | da3a99c34be6dc174f8a5a12a8e143ed4f6cc275 /gemini-to-web/src | |
| parent | be90f271f07b1234cef85a234211b3d3344cc2af (diff) | |
Extract RSS title and subtitle from headers
(Like gemfeed does.)
Also make base-url parameter mandatory.
Diffstat (limited to 'gemini-to-web/src')
| -rw-r--r-- | gemini-to-web/src/gemini_to_web/rss.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/gemini-to-web/src/gemini_to_web/rss.py b/gemini-to-web/src/gemini_to_web/rss.py index a03a4aa..40bb025 100644 --- a/gemini-to-web/src/gemini_to_web/rss.py +++ b/gemini-to-web/src/gemini_to_web/rss.py @@ -13,21 +13,29 @@ from gemini_to_web import parser def cli_to_rss(): argument_parser = argparse.ArgumentParser() - argument_parser.add_argument("--title", default="") + argument_parser.add_argument("--title", default=None) argument_parser.add_argument("--subtitle", default=None) - argument_parser.add_argument("--base-url", default="") + argument_parser.add_argument("base_url") argument_parser.add_argument("base_dir", type=pathlib.Path) args = argument_parser.parse_args() - fg = feed.FeedGenerator() - fg.title(args.title) - fg.subtitle(args.subtitle) - fg.link(href=args.base_url, rel="self") - input_ = sys.stdin.read() parsed = parser.parse(input_) parsed = list(parsed) + title = args.title + if not title: + title = [p for p in parsed if isinstance(p, parser.HeadingLine) and p.level == 1][0].heading_text + + subtitle = args.subtitle + if not subtitle: + subtitle = [p for p in parsed if isinstance(p, parser.HeadingLine) and p.level == 2][0].heading_text + + fg = feed.FeedGenerator() + fg.title(title) + fg.subtitle(subtitle) + fg.link(href=args.base_url, rel="self") + entries = [] for element in parsed: match element: |
