Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-podcastparser for
openSUSE:Factory checked in at 2026-01-26 12:34:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-podcastparser (Old)
and /work/SRC/openSUSE:Factory/.python-podcastparser.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-podcastparser"
Mon Jan 26 12:34:35 2026 rev:11 rq:1329155 version:0.6.11
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-podcastparser/python-podcastparser.changes
2025-06-03 17:57:08.102551318 +0200
+++
/work/SRC/openSUSE:Factory/.python-podcastparser.new.1928/python-podcastparser.changes
2026-01-26 12:34:48.254385907 +0100
@@ -1,0 +2,9 @@
+Mon Jan 26 08:14:06 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.6.11:
+ * Docs: Add requests example
+ * Don't overwrite non-empty fields with empty fields
+ * Support overwrite flag in PodcastAttr
+ * add rss/channel/itunes::summary handling
+
+-------------------------------------------------------------------
Old:
----
podcastparser-0.6.10.tar.gz
New:
----
podcastparser-0.6.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-podcastparser.spec ++++++
--- /var/tmp/diff_new_pack.rOLJcj/_old 2026-01-26 12:34:49.186425017 +0100
+++ /var/tmp/diff_new_pack.rOLJcj/_new 2026-01-26 12:34:49.186425017 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-podcastparser
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-podcastparser
-Version: 0.6.10
+Version: 0.6.11
Release: 0
Summary: A podcast parser
License: ISC
++++++ podcastparser-0.6.10.tar.gz -> podcastparser-0.6.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/PKG-INFO
new/podcastparser-0.6.11/PKG-INFO
--- old/podcastparser-0.6.10/PKG-INFO 2023-04-18 15:33:18.379349200 +0200
+++ new/podcastparser-0.6.11/PKG-INFO 2025-11-18 13:34:11.783632800 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: podcastparser
-Version: 0.6.10
+Version: 0.6.11
Summary: Simplified, fast RSS parser
Home-page: http://gpodder.org/podcastparser/
Author: Thomas Perl
@@ -9,6 +9,14 @@
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
+Dynamic: author
+Dynamic: author-email
+Dynamic: description
+Dynamic: description-content-type
+Dynamic: home-page
+Dynamic: license
+Dynamic: license-file
+Dynamic: summary
podcastparser: Simple, fast and efficient podcast parser
========================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/doc/index.rst
new/podcastparser-0.6.11/doc/index.rst
--- old/podcastparser-0.6.10/doc/index.rst 2023-04-18 15:32:59.000000000
+0200
+++ new/podcastparser-0.6.11/doc/index.rst 2025-11-18 13:34:01.000000000
+0100
@@ -42,6 +42,8 @@
Example
=======
+Using the built-in ``urllib.request`` module from Python 3:
+
.. code-block:: python
import podcastparser
@@ -57,6 +59,27 @@
.. TODO: Show example dict for a parsed feed with all fields
+
+Using `Requests`_:
+
+.. code-block:: python
+
+ import podcastparser
+ import requests
+
+ url = 'https://example.net/podcast.atom'
+
+ with requests.get(url, stream=True) as response:
+ response.raw.decode_content = True
+ parsed = podcastparser.parse(url, response.raw)
+
+ # parsed is a dict
+ import pprint
+ pprint.pprint(parsed)
+
+.. _Requests: https://requests.readthedocs.io
+
+
Supported XML Elements and Attributes
=====================================
@@ -82,6 +105,9 @@
**rss/channel/description**
Podcast description (whitespace is squashed).
+**rss/channel/itunes:summary**
+ Podcast description (whitespace is squashed).
+
**rss/channel/image/url**
Podcast cover art.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/podcastparser.egg-info/PKG-INFO
new/podcastparser-0.6.11/podcastparser.egg-info/PKG-INFO
--- old/podcastparser-0.6.10/podcastparser.egg-info/PKG-INFO 2023-04-18
15:33:18.000000000 +0200
+++ new/podcastparser-0.6.11/podcastparser.egg-info/PKG-INFO 2025-11-18
13:34:11.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: podcastparser
-Version: 0.6.10
+Version: 0.6.11
Summary: Simplified, fast RSS parser
Home-page: http://gpodder.org/podcastparser/
Author: Thomas Perl
@@ -9,6 +9,14 @@
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
+Dynamic: author
+Dynamic: author-email
+Dynamic: description
+Dynamic: description-content-type
+Dynamic: home-page
+Dynamic: license
+Dynamic: license-file
+Dynamic: summary
podcastparser: Simple, fast and efficient podcast parser
========================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/podcastparser-0.6.10/podcastparser.egg-info/SOURCES.txt
new/podcastparser-0.6.11/podcastparser.egg-info/SOURCES.txt
--- old/podcastparser-0.6.10/podcastparser.egg-info/SOURCES.txt 2023-04-18
15:33:18.000000000 +0200
+++ new/podcastparser-0.6.11/podcastparser.egg-info/SOURCES.txt 2025-11-18
13:34:11.000000000 +0100
@@ -24,6 +24,12 @@
tests/data/atom_relative_cover.rss
tests/data/atom_updated.json
tests/data/atom_updated.rss
+tests/data/channel_description.json
+tests/data/channel_description.rss
+tests/data/channel_summary.json
+tests/data/channel_summary.rss
+tests/data/channel_summary_and_description.json
+tests/data/channel_summary_and_description.rss
tests/data/chapters.json
tests/data/chapters.rss
tests/data/duration.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/podcastparser.py
new/podcastparser-0.6.11/podcastparser.py
--- old/podcastparser-0.6.10/podcastparser.py 2023-04-18 15:32:59.000000000
+0200
+++ new/podcastparser-0.6.11/podcastparser.py 2025-11-18 13:34:01.000000000
+0100
@@ -22,7 +22,7 @@
# Will be parsed by setup.py to determine package metadata
__author__ = 'Thomas Perl <[email protected]>'
-__version__ = '0.6.10'
+__version__ = '0.6.11'
__website__ = 'http://gpodder.org/podcastparser/'
__license__ = 'ISC License'
@@ -76,12 +76,16 @@
WANT_TEXT = True
def end(self, handler, text):
+ if not self.overwrite and handler.get_podcast_attr(self.key):
+ return
handler.set_podcast_attr(self.key, self.filter_func(text))
class PodcastAttrList(Target):
WANT_TEXT = True
def end(self, handler, text):
+ if not self.overwrite and handler.get_podcast_attr(self.key):
+ return
handler.set_podcast_attr(self.key, self.filter_func(text).split(', '))
@@ -89,6 +93,8 @@
WANT_TEXT = True
def end(self, handler, text):
+ if not self.overwrite and handler.get_podcast_attr(self.key):
+ return
value = self.filter_func(text)
if value in ('episodic', 'serial'):
handler.set_podcast_attr(self.key, value)
@@ -104,6 +110,8 @@
ATTRIBUTE = 'href'
def start(self, handler, attrs):
+ if not self.overwrite and handler.get_podcast_attr(self.key):
+ return
value = attrs.get(self.ATTRIBUTE)
if value:
value = urlparse.urljoin(handler.base, value)
@@ -128,7 +136,9 @@
def end(self, handler, text):
if not self.overwrite and handler.get_episode_attr(self.key):
return
- handler.set_episode_attr(self.key, self.filter_func(text))
+ text = self.filter_func(text)
+ if text != '' or handler.get_episode_attr(self.key) is None:
+ handler.set_episode_attr(self.key, text)
class EpisodeAttrRelativeLink(EpisodeAttr):
@@ -732,6 +742,7 @@
'rss/channel/title': PodcastAttr('title', squash_whitespace),
'rss/channel/link': PodcastAttrRelativeLink('link'),
'rss/channel/description': PodcastAttr('description',
squash_whitespace_not_nl),
+ 'rss/channel/itunes:summary': PodcastAttr('description',
squash_whitespace_not_nl, overwrite=False),
'rss/channel/podcast:funding': PodcastAttrFromUrl('funding_url'),
'rss/channel/podcast:locked': PodcastAttrExplicit('import_prohibited'),
'rss/channel/image/url': PodcastAttrRelativeLink('cover_url'),
@@ -843,6 +854,9 @@
def set_podcast_attr(self, key, value):
self.data[key] = value
+ def get_podcast_attr(self, key, default=None):
+ return self.data.get(key, default)
+
def set_episode_attr(self, key, value):
self.episodes[-1][key] = value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/setup.py
new/podcastparser-0.6.11/setup.py
--- old/podcastparser-0.6.10/setup.py 2023-04-18 15:32:59.000000000 +0200
+++ new/podcastparser-0.6.11/setup.py 2025-11-18 13:34:01.000000000 +0100
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-from distutils.core import setup
+from setuptools import setup
import re
import os.path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/podcastparser-0.6.10/tests/data/channel_description.json
new/podcastparser-0.6.11/tests/data/channel_description.json
--- old/podcastparser-0.6.10/tests/data/channel_description.json
1970-01-01 01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_description.json
2025-11-18 13:34:01.000000000 +0100
@@ -0,0 +1,5 @@
+{
+ "title": "Example Feed",
+ "description": "A podcast with a description field",
+ "episodes": []
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/podcastparser-0.6.10/tests/data/channel_description.rss
new/podcastparser-0.6.11/tests/data/channel_description.rss
--- old/podcastparser-0.6.10/tests/data/channel_description.rss 1970-01-01
01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_description.rss 2025-11-18
13:34:01.000000000 +0100
@@ -0,0 +1,6 @@
+<rss>
+ <channel>
+ <title>Example Feed</title>
+ <description>A podcast with a description field</description>
+ </channel>
+</rss>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/tests/data/channel_summary.json
new/podcastparser-0.6.11/tests/data/channel_summary.json
--- old/podcastparser-0.6.10/tests/data/channel_summary.json 1970-01-01
01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_summary.json 2025-11-18
13:34:01.000000000 +0100
@@ -0,0 +1,5 @@
+{
+ "title": "Example Feed",
+ "description": "A podcast with a summary field",
+ "episodes": []
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/podcastparser-0.6.10/tests/data/channel_summary.rss
new/podcastparser-0.6.11/tests/data/channel_summary.rss
--- old/podcastparser-0.6.10/tests/data/channel_summary.rss 1970-01-01
01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_summary.rss 2025-11-18
13:34:01.000000000 +0100
@@ -0,0 +1,6 @@
+<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
+ <channel>
+ <title>Example Feed</title>
+ <itunes:summary>A podcast with a summary field</itunes:summary>
+ </channel>
+</rss>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/podcastparser-0.6.10/tests/data/channel_summary_and_description.json
new/podcastparser-0.6.11/tests/data/channel_summary_and_description.json
--- old/podcastparser-0.6.10/tests/data/channel_summary_and_description.json
1970-01-01 01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_summary_and_description.json
2025-11-18 13:34:01.000000000 +0100
@@ -0,0 +1,5 @@
+{
+ "title": "Example Feed",
+ "description": "A podcast with a description field",
+ "episodes": []
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/podcastparser-0.6.10/tests/data/channel_summary_and_description.rss
new/podcastparser-0.6.11/tests/data/channel_summary_and_description.rss
--- old/podcastparser-0.6.10/tests/data/channel_summary_and_description.rss
1970-01-01 01:00:00.000000000 +0100
+++ new/podcastparser-0.6.11/tests/data/channel_summary_and_description.rss
2025-11-18 13:34:01.000000000 +0100
@@ -0,0 +1,7 @@
+<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
+ <channel>
+ <title>Example Feed</title>
+ <description>A podcast with a description field</description>
+ <itunes:summary>A podcast with a summary field</itunes:summary>
+ </channel>
+</rss>