Skip to content

Commit 9240619

Browse files
committed
rss-bot: Add option to convert body to Markdown
1 parent a2ddac7 commit 9240619

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ module = [
6464
"gitlint.*",
6565
"googleapiclient.*",
6666
"irc.*",
67+
"markdownify.*",
6768
"mercurial.*",
6869
"nio.*",
6970
"oauth2client.*",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
feedparser>=6.0.10
2+
markdownify>=0.11.6

zulip/integrations/rss/rss-bot

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ from html.parser import HTMLParser
1717
from typing import Any, Dict, List, Optional, Tuple
1818

1919
import feedparser
20+
from markdownify import markdownify
2021
from typing_extensions import override
2122

2223
import zulip
@@ -92,6 +93,19 @@ parser.add_argument(
9293
help="Convert $ to $$ (for KaTeX processing)",
9394
default=False,
9495
)
96+
body = parser.add_mutually_exclusive_group()
97+
body.add_argument(
98+
"--strip",
99+
dest="strip",
100+
action="store_true",
101+
help="Strip HTML tags from body",
102+
)
103+
body.add_argument(
104+
"--markdownify",
105+
dest="strip",
106+
action="store_false",
107+
help="Convert body from HTML to Markdown",
108+
)
95109

96110
opts = parser.parse_args()
97111

@@ -177,7 +191,8 @@ def send_zulip(entry: Any, feed_name: str) -> Dict[str, Any]:
177191
if opts.unwrap:
178192
body = unwrap_text(body)
179193

180-
content = f"**[{entry.title}]({entry.link})**\n{strip_tags(body)}\n{entry.link}"
194+
convert = strip_tags if opts.strip else markdownify
195+
content = f"**[{entry.title}]({entry.link})**\n{convert(body)}\n{entry.link}"
181196

182197
if opts.math:
183198
content = content.replace("$", "$$")

0 commit comments

Comments
 (0)