(root_name: str, title: str, html_url: str, feed_url: str)
| 152 | |
| 153 | |
| 154 | def _build_feed_metadata(root_name: str, title: str, html_url: str, feed_url: str) -> FeedMetadata: |
| 155 | if root_name not in {"rss", "feed", "rdf"}: |
| 156 | raise ValueError(f"Unsupported feed root tag: {root_name}") |
| 157 | |
| 158 | safe_title = title or urllib.parse.urlparse(feed_url).netloc or feed_url |
| 159 | safe_html_url = urllib.parse.urljoin(feed_url, html_url) if html_url else feed_url |
| 160 | return FeedMetadata( |
| 161 | title=safe_title, |
| 162 | html_url=normalize_url(safe_html_url), |
| 163 | xml_url=normalize_url(feed_url), |
| 164 | ) |
| 165 | |
| 166 | |
| 167 | def parse_feed_metadata(xml_bytes: bytes, feed_url: str) -> FeedMetadata: |
no test coverage detected