Skip to content

Commit 39a4fd7

Browse files
author
E.S. Rosenberg a.k.a. Keeper of the Keys
committed
Change update functionality so that existing episodes get updated (similar to podcast.py)
1 parent e4b7b59 commit 39a4fd7

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/gpodder/plugins/soundcloud.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,21 @@ def get_new_episodes(self, channel):
233233

234234
def _get_new_episodes(self, channel, track_type):
235235
tracks = [t for t in self.sc_user.get_tracks(track_type, channel)]
236-
237-
existing_guids = [episode.guid for episode in channel.episodes]
236+
existing_guids = dict((episode.guid, episode) for episode in channel.episodes)
238237
seen_guids = [track['guid'] for track in tracks]
239238
new_episodes = []
240239

241240
for track in tracks:
242-
if track['guid'] not in existing_guids:
241+
episode = existing_guids.get(track['guid'])
242+
243+
if not episode:
243244
episode = channel.episode_factory(track.items())
244-
episode.save()
245245
new_episodes.append(episode)
246+
logger.info('Found new episode: %s', episode.guid)
247+
else:
248+
episode.update_from_dict(track)
249+
logger.info('Updating existing episode: %s', episode.guid)
250+
episode.save()
246251

247252
return new_episodes, seen_guids
248253

0 commit comments

Comments
 (0)