diff --git a/share/man/man1/gpo.1 b/share/man/man1/gpo.1 index ad1770c..200bf07 100644 --- a/share/man/man1/gpo.1 +++ b/share/man/man1/gpo.1 @@ -1,4 +1,4 @@ -.TH GPO "1" "March 2020" "gpodder 4.11.0" "User Commands" +.TH GPO "1" "April 2020" "gpodder 4.11.1" "User Commands" .SH NAME gpo \- gPodder command-line interface .SH SYNOPSIS diff --git a/src/gpodder/__init__.py b/src/gpodder/__init__.py index 94a33fc..f5805c3 100644 --- a/src/gpodder/__init__.py +++ b/src/gpodder/__init__.py @@ -50,8 +50,8 @@ # This metadata block gets parsed by setup.py - use single quotes only __tagline__ = 'Media and podcast aggregator' __author__ = 'Thomas Perl ' -__version__ = '4.11.0' -__date__ = '2020-03-31' +__version__ = '4.11.1' +__date__ = '2020-04-10' __relname__ = 'Geshem' __copyright__ = '© 2005-2020 Thomas Perl and the gPodder Team' __license__ = 'ISC / GPLv3 or later' diff --git a/src/gpodder/model.py b/src/gpodder/model.py index 62d4439..aa4f092 100644 --- a/src/gpodder/model.py +++ b/src/gpodder/model.py @@ -129,7 +129,7 @@ class PodcastEpisode(EpisodeModelFields, PodcastModelMixin): MAX_FILENAME_LENGTH = 200 UPDATE_KEYS = ('title', 'url', 'description', 'link', 'published', 'guid', 'file_size', - 'payment_url', 'subtitle', 'description_html') + 'payment_url', 'subtitle', 'description_html', 'episode_art_url') class __minidb_defaults__: url = '' diff --git a/src/gpodder/plugins/soundcloud.py b/src/gpodder/plugins/soundcloud.py index 9d06460..ba00595 100644 --- a/src/gpodder/plugins/soundcloud.py +++ b/src/gpodder/plugins/soundcloud.py @@ -233,16 +233,21 @@ def get_new_episodes(self, channel): def _get_new_episodes(self, channel, track_type): tracks = [t for t in self.sc_user.get_tracks(track_type, channel)] - - existing_guids = [episode.guid for episode in channel.episodes] + existing_guids = dict((episode.guid, episode) for episode in channel.episodes) seen_guids = [track['guid'] for track in tracks] new_episodes = [] for track in tracks: - if track['guid'] not in existing_guids: + episode = existing_guids.get(track['guid']) + + if not episode: episode = channel.episode_factory(track.items()) - episode.save() new_episodes.append(episode) + logger.info('Found new episode: %s', episode.guid) + else: + episode.update_from_dict(track) + logger.info('Updating existing episode: %s', episode.guid) + episode.save() return new_episodes, seen_guids