From 7bd036af0821040891c67cdbf459c1de804108ee Mon Sep 17 00:00:00 2001 From: L2501 <L2501@users.noreply.github.com> Date: Mon, 11 Dec 2023 21:25:19 +0000 Subject: [PATCH] [script.module.feedparser] 6.0.11 --- .../{LICENSE => LICENSE.txt} | 4 +- script.module.feedparser/README.rst | 46 ------------------ script.module.feedparser/addon.xml | 34 ++++++------- .../lib/feedparser/__init__.py | 4 +- .../lib/feedparser/api.py | 12 ++++- .../lib/feedparser/datetimes/__init__.py | 2 +- .../lib/feedparser/datetimes/asctime.py | 2 +- .../lib/feedparser/datetimes/greek.py | 2 +- .../lib/feedparser/datetimes/hungarian.py | 2 +- .../lib/feedparser/datetimes/iso8601.py | 2 +- .../lib/feedparser/datetimes/korean.py | 2 +- .../lib/feedparser/datetimes/perforce.py | 2 +- .../lib/feedparser/datetimes/rfc822.py | 2 +- .../lib/feedparser/datetimes/w3dtf.py | 2 +- .../lib/feedparser/encodings.py | 33 ++++++++++--- .../lib/feedparser/exceptions.py | 2 +- .../lib/feedparser/html.py | 2 +- .../lib/feedparser/http.py | 21 ++++++-- .../lib/feedparser/mixin.py | 7 ++- .../lib/feedparser/namespaces/_base.py | 9 ++-- .../lib/feedparser/namespaces/admin.py | 2 +- .../lib/feedparser/namespaces/cc.py | 2 +- .../lib/feedparser/namespaces/dc.py | 2 +- .../lib/feedparser/namespaces/georss.py | 4 +- .../lib/feedparser/namespaces/itunes.py | 2 +- .../lib/feedparser/namespaces/mediarss.py | 2 +- .../lib/feedparser/namespaces/psc.py | 2 +- .../lib/feedparser/parsers/loose.py | 2 +- .../lib/feedparser/parsers/strict.py | 2 +- .../lib/feedparser/sanitizer.py | 2 +- .../lib/feedparser/sgml.py | 2 +- .../lib/feedparser/urls.py | 2 +- .../lib/feedparser/util.py | 2 +- .../{ => resources}/icon.png | Bin 34 files changed, 110 insertions(+), 110 deletions(-) rename script.module.feedparser/{LICENSE => LICENSE.txt} (96%) delete mode 100644 script.module.feedparser/README.rst rename script.module.feedparser/{ => resources}/icon.png (100%) diff --git a/script.module.feedparser/LICENSE b/script.module.feedparser/LICENSE.txt similarity index 96% rename from script.module.feedparser/LICENSE rename to script.module.feedparser/LICENSE.txt index 3ce95b12b..70b8167f3 100644 --- a/script.module.feedparser/LICENSE +++ b/script.module.feedparser/LICENSE.txt @@ -2,7 +2,7 @@ feedparser and its unit tests are released under the following license: ----- begin license block ----- -Copyright (C) 2010-2015 Kurt McKee <contactme@kurtmckee.org> +Copyright (C) 2010-2022 Kurt McKee <contactme@kurtmckee.org> Copyright (C) 2002-2008 Mark Pilgrim All rights reserved. @@ -38,7 +38,7 @@ released under the following license: ----- begin license block ----- -Copyright (C) 2010-2015 Kurt McKee <contactme@kurtmckee.org> +Copyright (C) 2010-2022 Kurt McKee <contactme@kurtmckee.org> Copyright (C) 2004-2008 Mark Pilgrim. All rights reserved. Redistribution and use in source (Sphinx ReST) and "compiled" forms (HTML, PDF, diff --git a/script.module.feedparser/README.rst b/script.module.feedparser/README.rst deleted file mode 100644 index d49535b38..000000000 --- a/script.module.feedparser/README.rst +++ /dev/null @@ -1,46 +0,0 @@ -feedparser - Parse Atom and RSS feeds in Python. - -| Copyright 2010-2019 Kurt McKee <contactme@kurtmckee.org> -| Copyright 2002-2008 Mark Pilgrim - -feedparser is open source. See the LICENSE file for more information. - - -Installation -============ - -Feedparser can be installed using distutils or setuptools by running:: - - $ python setup.py install - -Note: sgmllib3k is a Python 3 dependency. It will be installed automatically. - - -Documentation -============= - -The feedparser documentation is available on the web at: - - https://pythonhosted.org/feedparser/ - -It is also included in its source format, ReST, in the docs/ directory. To -build the documentation you'll need the Sphinx package, which is available at: - - http://sphinx.pocoo.org/ - -You can then build HTML pages using a command similar to:: - - $ sphinx-build -b html docs/ fpdocs - -This will produce HTML documentation in the fpdocs/ directory. - - -Testing -======= - -Feedparser has an extensive test suite, powered by tox. To run it, type this:: - - $ tox - -This will spawn an HTTP server that will listen on port 8097. The tests will -fail if that port is in use. diff --git a/script.module.feedparser/addon.xml b/script.module.feedparser/addon.xml index a74c0bb21..fe9755fdb 100644 --- a/script.module.feedparser/addon.xml +++ b/script.module.feedparser/addon.xml @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<addon id="script.module.feedparser" name="feedparser" version="6.0.2" provider-name="Kurt McKee"> - <requires> - <import addon="xbmc.python" version="3.0.0"/> - <import addon="script.module.sgmllib3k" version="1.0.0+matrix.1"/> - </requires> - <extension point="xbmc.python.module" library="lib"/> - <extension point="xbmc.addon.metadata"> - <language></language> - <summary lang="en_GB">Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds</summary> - <description lang="en_GB">Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds</description> - <license>MIT</license> - <platform>all</platform> - <source>https://github.com/kurtmckee/feedparser</source> - <assets> - <icon>icon.png</icon> - </assets> - </extension> +<addon id="script.module.feedparser" name="feedparser" version="6.0.11" provider-name="Kurt McKee"> + <requires> + <import addon="xbmc.python" version="3.0.0" /> + <import addon="script.module.sgmllib3k" version="1.0.0+matrix.1" /> + </requires> + <extension point="xbmc.python.module" library="lib" /> + <extension point="xbmc.addon.metadata"> + <summary lang="en_GB">Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds</summary> + <description lang="en_GB">Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds</description> + <license>BSD-2-Clause</license> + <platform>all</platform> + <website>https://github.com/kurtmckee/feedparser</website> + <source>https://github.com/kurtmckee/feedparser</source> + <assets> + <icon>resources/icon.png</icon> + </assets> + </extension> </addon> diff --git a/script.module.feedparser/lib/feedparser/__init__.py b/script.module.feedparser/lib/feedparser/__init__.py index c3fcfe609..a9607801c 100644 --- a/script.module.feedparser/lib/feedparser/__init__.py +++ b/script.module.feedparser/lib/feedparser/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -32,7 +32,7 @@ __author__ = 'Kurt McKee <contactme@kurtmckee.org>' __license__ = 'BSD 2-clause' -__version__ = '6.0.2' +__version__ = '6.0.11' # HTTP "User-Agent" header to send to servers when downloading feeds. # If you are embedding feedparser in a larger application, you should diff --git a/script.module.feedparser/lib/feedparser/api.py b/script.module.feedparser/lib/feedparser/api.py index 831c61ae9..1fe40979c 100644 --- a/script.module.feedparser/lib/feedparser/api.py +++ b/script.module.feedparser/lib/feedparser/api.py @@ -1,5 +1,5 @@ # The public API for feedparser -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -27,6 +27,7 @@ # POSSIBILITY OF SUCH DAMAGE. import io +import urllib.error import urllib.parse import xml.sax @@ -211,7 +212,14 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer headers={}, ) - data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) + try: + data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) + except urllib.error.URLError as error: + result.update({ + 'bozo': True, + 'bozo_exception': error, + }) + return result if not data: return result diff --git a/script.module.feedparser/lib/feedparser/datetimes/__init__.py b/script.module.feedparser/lib/feedparser/datetimes/__init__.py index 01b96f4ea..2837838ba 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/__init__.py +++ b/script.module.feedparser/lib/feedparser/datetimes/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/asctime.py b/script.module.feedparser/lib/feedparser/datetimes/asctime.py index e44326313..99416f664 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/asctime.py +++ b/script.module.feedparser/lib/feedparser/datetimes/asctime.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/greek.py b/script.module.feedparser/lib/feedparser/datetimes/greek.py index 91d0e1dad..3a4db7148 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/greek.py +++ b/script.module.feedparser/lib/feedparser/datetimes/greek.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/hungarian.py b/script.module.feedparser/lib/feedparser/datetimes/hungarian.py index 266c0c1fd..63fa9afd1 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/hungarian.py +++ b/script.module.feedparser/lib/feedparser/datetimes/hungarian.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/iso8601.py b/script.module.feedparser/lib/feedparser/datetimes/iso8601.py index 65b35b584..e78764592 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/iso8601.py +++ b/script.module.feedparser/lib/feedparser/datetimes/iso8601.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/korean.py b/script.module.feedparser/lib/feedparser/datetimes/korean.py index 1ad638d92..5fe4eb6f9 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/korean.py +++ b/script.module.feedparser/lib/feedparser/datetimes/korean.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/perforce.py b/script.module.feedparser/lib/feedparser/datetimes/perforce.py index aac23bbdc..e53e5ff67 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/perforce.py +++ b/script.module.feedparser/lib/feedparser/datetimes/perforce.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/rfc822.py b/script.module.feedparser/lib/feedparser/datetimes/rfc822.py index 15b95ddb9..12e699c84 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/rfc822.py +++ b/script.module.feedparser/lib/feedparser/datetimes/rfc822.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/datetimes/w3dtf.py b/script.module.feedparser/lib/feedparser/datetimes/w3dtf.py index 1cadca3c7..9b71af1fa 100644 --- a/script.module.feedparser/lib/feedparser/datetimes/w3dtf.py +++ b/script.module.feedparser/lib/feedparser/datetimes/w3dtf.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/encodings.py b/script.module.feedparser/lib/feedparser/encodings.py index 02dfcbe02..5ae74af68 100644 --- a/script.module.feedparser/lib/feedparser/encodings.py +++ b/script.module.feedparser/lib/feedparser/encodings.py @@ -1,5 +1,5 @@ # Character encoding routines -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -26,9 +26,9 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -import cgi import codecs import re +import typing as t try: try: @@ -68,6 +68,30 @@ def lazy_chardet_encoding(data): RE_XML_PI_ENCODING = re.compile(br'^<\?.*encoding=[\'"](.*?)[\'"].*\?>') +def parse_content_type(line: str) -> t.Tuple[str, str]: + """Parse an HTTP Content-Type header. + + The return value will be a tuple of strings: + the MIME type, and the value of the "charset" (if any). + + This is a custom replacement for Python's cgi.parse_header(). + The cgi module will be removed in Python 3.13. + """ + + chunks = line.split(";") + if not chunks: + return "", "" + + mime_type = chunks[0].strip() + charset_value = "" + for chunk in chunks[1:]: + key, _, value = chunk.partition("=") + if key.strip().lower() == "charset": + charset_value = value.strip().strip("\"'") + + return mime_type, charset_value + + def convert_to_utf8(http_headers, data, result): """Detect and convert the character encoding to UTF-8. @@ -181,10 +205,7 @@ def convert_to_utf8(http_headers, data, result): # XML declaration encoding, and HTTP encoding, following the # heuristic defined in RFC 3023. http_content_type = http_headers.get('content-type') or '' - http_content_type, params = cgi.parse_header(http_content_type) - http_encoding = params.get('charset', '').replace("'", "") - if isinstance(http_encoding, bytes): - http_encoding = http_encoding.decode('utf-8', 'ignore') + http_content_type, http_encoding = parse_content_type(http_content_type) acceptable_content_type = 0 application_content_types = ('application/xml', 'application/xml-dtd', diff --git a/script.module.feedparser/lib/feedparser/exceptions.py b/script.module.feedparser/lib/feedparser/exceptions.py index 7fa28a1ba..0da8152ff 100644 --- a/script.module.feedparser/lib/feedparser/exceptions.py +++ b/script.module.feedparser/lib/feedparser/exceptions.py @@ -1,5 +1,5 @@ # Exceptions used throughout feedparser -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/html.py b/script.module.feedparser/lib/feedparser/html.py index 487ea4825..0aae18f6a 100644 --- a/script.module.feedparser/lib/feedparser/html.py +++ b/script.module.feedparser/lib/feedparser/html.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/http.py b/script.module.feedparser/lib/feedparser/http.py index 97d67cbd3..1516eabfd 100644 --- a/script.module.feedparser/lib/feedparser/http.py +++ b/script.module.feedparser/lib/feedparser/http.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -53,6 +53,8 @@ def http_error_default(self, req, fp, code, msg, headers): def http_error_301(self, req, fp, code, msg, hdrs): result = urllib.request.HTTPRedirectHandler.http_error_301(self, req, fp, code, msg, hdrs) + if not result: + return fp result.status = code result.newurl = result.geturl() return result @@ -78,7 +80,7 @@ def http_error_401(self, req, fp, code, msg, headers): host = urllib.parse.urlparse(req.get_full_url())[1] if 'Authorization' not in req.headers or 'WWW-Authenticate' not in headers: return self.http_error_default(req, fp, code, msg, headers) - auth = base64.decodebytes(req.headers['Authorization'].split(' ')[1].encode('utf8')) + auth = base64.decodebytes(req.headers['Authorization'].split(' ')[1].encode()).decode() user, passw = auth.split(':') realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] self.add_password(realm, host, user, passw) @@ -145,12 +147,23 @@ def get(url, etag=None, modified=None, agent=None, referrer=None, handlers=None, if url_pieces.port: new_pieces[1] = f'{url_pieces.hostname}:{url_pieces.port}' url = urllib.parse.urlunparse(new_pieces) - auth = base64.standard_b64encode(f'{url_pieces.username}:{url_pieces.password}').strip() + auth = base64.standard_b64encode(f'{url_pieces.username}:{url_pieces.password}'.encode()).decode() # iri support if not isinstance(url, bytes): url = convert_to_idn(url) + # Prevent UnicodeEncodeErrors caused by Unicode characters in the path. + bits = [] + for c in url: + try: + c.encode('ascii') + except UnicodeEncodeError: + bits.append(urllib.parse.quote(c)) + else: + bits.append(c) + url = ''.join(bits) + # try to open with urllib2 (to use optional headers) request = _build_urllib2_request(url, agent, ACCEPT_HEADER, etag, modified, referrer, auth, request_headers) opener = urllib.request.build_opener(*tuple(handlers + [_FeedURLHandler()])) @@ -203,7 +216,7 @@ def get(url, etag=None, modified=None, agent=None, referrer=None, handlers=None, result['href'] = f.url.decode('utf-8', 'ignore') else: result['href'] = f.url - result['status'] = getattr(f, 'status', 200) + result['status'] = getattr(f, 'status', None) or 200 # Stop processing if the server sent HTTP 304 Not Modified. if getattr(f, 'code', 0) == 304: diff --git a/script.module.feedparser/lib/feedparser/mixin.py b/script.module.feedparser/lib/feedparser/mixin.py index f305015b9..c4265e750 100644 --- a/script.module.feedparser/lib/feedparser/mixin.py +++ b/script.module.feedparser/lib/feedparser/mixin.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -193,6 +193,7 @@ def __init__(self): self.svgOK = 0 self.title_depth = -1 self.depth = 0 + self.hasContent = 0 if self.lang: self.feeddata['language'] = self.lang.replace('_', '-') @@ -506,9 +507,7 @@ def pop(self, element, strip_whitespace=1): if base64 and self.contentparams.get('base64', 0): try: output = base64.decodebytes(output.encode('utf8')).decode('utf8') - except binascii.Error: - pass - except binascii.Incomplete: + except (binascii.Error, binascii.Incomplete, UnicodeDecodeError): pass # resolve relative URIs diff --git a/script.module.feedparser/lib/feedparser/namespaces/_base.py b/script.module.feedparser/lib/feedparser/namespaces/_base.py index 61446ffe9..cb2b2a98c 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/_base.py +++ b/script.module.feedparser/lib/feedparser/namespaces/_base.py @@ -1,5 +1,5 @@ # Support for the Atom, RSS, RDF, and CDF feed formats -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -259,6 +259,7 @@ def _start_item(self, attrs_d): def _end_item(self): self.pop('item') self.inentry = 0 + self.hasContent = 0 _end_entry = _end_item def _start_language(self, attrs_d): @@ -388,7 +389,7 @@ def _end_title(self): def _start_description(self, attrs_d): context = self._get_context() - if 'summary' in context: + if 'summary' in context and not self.hasContent: self._summaryKey = 'content' self._start_content(attrs_d) else: @@ -429,7 +430,7 @@ def _end_generator(self): def _start_summary(self, attrs_d): context = self._get_context() - if 'summary' in context: + if 'summary' in context and not self.hasContent: self._summaryKey = 'content' self._start_content(attrs_d) else: @@ -466,6 +467,7 @@ def _end_source(self): self.sourcedata.clear() def _start_content(self, attrs_d): + self.hasContent = 1 self.push_content('content', attrs_d, 'text/plain', 1) src = attrs_d.get('src') if src: @@ -477,6 +479,7 @@ def _start_body(self, attrs_d): _start_xhtml_body = _start_body def _start_content_encoded(self, attrs_d): + self.hasContent = 1 self.push_content('content', attrs_d, 'text/html', 1) _start_fullitem = _start_content_encoded diff --git a/script.module.feedparser/lib/feedparser/namespaces/admin.py b/script.module.feedparser/lib/feedparser/namespaces/admin.py index 2dca7a02b..88b70013d 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/admin.py +++ b/script.module.feedparser/lib/feedparser/namespaces/admin.py @@ -1,5 +1,5 @@ # Support for the administrative elements extension -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/namespaces/cc.py b/script.module.feedparser/lib/feedparser/namespaces/cc.py index da1a4ceee..9e482d1b4 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/cc.py +++ b/script.module.feedparser/lib/feedparser/namespaces/cc.py @@ -1,5 +1,5 @@ # Support for the Creative Commons licensing extensions -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/namespaces/dc.py b/script.module.feedparser/lib/feedparser/namespaces/dc.py index feabdd0a2..fdf4cc11f 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/dc.py +++ b/script.module.feedparser/lib/feedparser/namespaces/dc.py @@ -1,5 +1,5 @@ # Support for the Dublin Core metadata extensions -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/namespaces/georss.py b/script.module.feedparser/lib/feedparser/namespaces/georss.py index 8d8b253b3..2f3035068 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/georss.py +++ b/script.module.feedparser/lib/feedparser/namespaces/georss.py @@ -1,5 +1,5 @@ # Support for the GeoRSS format -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -91,6 +91,8 @@ def _parse_srs_attrs(self, attrs_d): except ValueError: srs_dimension = 2 context = self._get_context() + if 'where' not in context: + context['where'] = {} context['where']['srsName'] = srs_name context['where']['srsDimension'] = srs_dimension diff --git a/script.module.feedparser/lib/feedparser/namespaces/itunes.py b/script.module.feedparser/lib/feedparser/namespaces/itunes.py index abcfc243b..7cebfae9a 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/itunes.py +++ b/script.module.feedparser/lib/feedparser/namespaces/itunes.py @@ -1,5 +1,5 @@ # Support for the iTunes format -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/namespaces/mediarss.py b/script.module.feedparser/lib/feedparser/namespaces/mediarss.py index b63743879..00a07afbc 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/mediarss.py +++ b/script.module.feedparser/lib/feedparser/namespaces/mediarss.py @@ -1,5 +1,5 @@ # Support for the Media RSS format -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/namespaces/psc.py b/script.module.feedparser/lib/feedparser/namespaces/psc.py index c7f565e04..519bee1d8 100644 --- a/script.module.feedparser/lib/feedparser/namespaces/psc.py +++ b/script.module.feedparser/lib/feedparser/namespaces/psc.py @@ -1,5 +1,5 @@ # Support for the Podlove Simple Chapters format -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/parsers/loose.py b/script.module.feedparser/lib/feedparser/parsers/loose.py index 52467d0f8..ee0b58b13 100644 --- a/script.module.feedparser/lib/feedparser/parsers/loose.py +++ b/script.module.feedparser/lib/feedparser/parsers/loose.py @@ -1,5 +1,5 @@ # The loose feed parser that interfaces with an SGML parsing library -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/parsers/strict.py b/script.module.feedparser/lib/feedparser/parsers/strict.py index 23759f938..d40797a7a 100644 --- a/script.module.feedparser/lib/feedparser/parsers/strict.py +++ b/script.module.feedparser/lib/feedparser/parsers/strict.py @@ -1,5 +1,5 @@ # The strict feed parser that interfaces with an XML parsing library -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/sanitizer.py b/script.module.feedparser/lib/feedparser/sanitizer.py index 308db7c3a..597a72b87 100644 --- a/script.module.feedparser/lib/feedparser/sanitizer.py +++ b/script.module.feedparser/lib/feedparser/sanitizer.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/sgml.py b/script.module.feedparser/lib/feedparser/sgml.py index 1509099ba..ae5edf2a2 100644 --- a/script.module.feedparser/lib/feedparser/sgml.py +++ b/script.module.feedparser/lib/feedparser/sgml.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/urls.py b/script.module.feedparser/lib/feedparser/urls.py index c27fdd128..1155f26e6 100644 --- a/script.module.feedparser/lib/feedparser/urls.py +++ b/script.module.feedparser/lib/feedparser/urls.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/lib/feedparser/util.py b/script.module.feedparser/lib/feedparser/util.py index 5b7313072..5ad3a84a0 100644 --- a/script.module.feedparser/lib/feedparser/util.py +++ b/script.module.feedparser/lib/feedparser/util.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contactme@kurtmckee.org> +# Copyright 2010-2023 Kurt McKee <contactme@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff --git a/script.module.feedparser/icon.png b/script.module.feedparser/resources/icon.png similarity index 100% rename from script.module.feedparser/icon.png rename to script.module.feedparser/resources/icon.png