Skip to content

Commit

Permalink
Compatibility with feedparser 6.0.0
Browse files Browse the repository at this point in the history
Closes #1567
  • Loading branch information
Safihre committed Sep 1, 2020
1 parent 420a3d3 commit 510ec97
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions sabnzbd/rss.py
Expand Up @@ -644,12 +644,25 @@ def patch_feedparser():
feedparser.SANITIZE_HTML = 0
feedparser.PARSE_MICROFORMATS = 0

# Support both feedparser 5 and 6
try:
feedparser_mixin = feedparser._FeedParserMixin
feedparser_parse_date = feedparser._parse_date
except AttributeError:
feedparser_mixin = feedparser.mixin._FeedParserMixin
feedparser_parse_date = feedparser.datetimes._parse_date

# Add our own namespace
feedparser._FeedParserMixin.namespaces["http://www.newznab.com/DTD/2010/feeds/attributes/"] = "newznab"
feedparser_mixin.namespaces["http://www.newznab.com/DTD/2010/feeds/attributes/"] = "newznab"

# Add parsers for the namespace
def _start_newznab_attr(self, attrsD):
context = self._getContext()
# Support both feedparser 5 and 6
try:
context = self._getContext()
except AttributeError:
context = self._get_context()

# Add the dict
if "newznab" not in context:
context["newznab"] = {}
Expand All @@ -659,14 +672,14 @@ def _start_newznab_attr(self, attrsD):
context["newznab"][attrsD["name"]] = attrsD["value"]
# Try to get date-object
if attrsD["name"] == "usenetdate":
context["newznab"][attrsD["name"] + "_parsed"] = feedparser._parse_date(attrsD["value"])
context["newznab"][attrsD["name"] + "_parsed"] = feedparser_parse_date(attrsD["value"])
except KeyError:
pass

feedparser._FeedParserMixin._start_newznab_attr = _start_newznab_attr
feedparser._FeedParserMixin._start_nZEDb_attr = _start_newznab_attr
feedparser._FeedParserMixin._start_nzedb_attr = _start_newznab_attr
feedparser._FeedParserMixin._start_nntmux_attr = _start_newznab_attr
feedparser_mixin._start_newznab_attr = _start_newznab_attr
feedparser_mixin._start_nZEDb_attr = _start_newznab_attr
feedparser_mixin._start_nzedb_attr = _start_newznab_attr
feedparser_mixin._start_nntmux_attr = _start_newznab_attr


def _HandleLink(
Expand Down

0 comments on commit 510ec97

Please sign in to comment.