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>

Reply via email to