From 68dcf79fc45c4e0dafea136d015ecf0571535fca Mon Sep 17 00:00:00 2001 From: Fabian Munkes <105975993+fmunkes@users.noreply.github.com> Date: Mon, 24 Mar 2025 07:23:33 -0700 Subject: [PATCH] fix: gPodder not checking guid on playlog sync if it is present (#2053) --- music_assistant/providers/gpodder/__init__.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/music_assistant/providers/gpodder/__init__.py b/music_assistant/providers/gpodder/__init__.py index e7e9d22c..7d750211 100644 --- a/music_assistant/providers/gpodder/__init__.py +++ b/music_assistant/providers/gpodder/__init__.py @@ -372,8 +372,24 @@ class GPodder(MusicProvider): # we do not have to add the progress, these would make calls twice, # and we only use the object to propagate to playlog self.progress_guard_timestamp = time.time() - _episode_id = f"{feed_url} {_progress.episode}" - mass_episode = await self.get_podcast_episode(_episode_id, add_progress=False) + _episode_ids: list[str] = [] + if _progress.guid is not None: + _episode_ids.append(f"{feed_url} {_progress.guid}") + _episode_ids.append(f"{feed_url} {_progress.episode}") + mass_episode: PodcastEpisode | None = None + for _episode_id in _episode_ids: + try: + mass_episode = await self.get_podcast_episode( + _episode_id, add_progress=False + ) + break + except MediaNotFoundError: + continue + if mass_episode is None: + self.logger.debug( + f"Was unable to use progress for episode {_progress.episode}." + ) + continue if isinstance(_progress, EpisodeActionNew): await self.mass.music.mark_item_unplayed(mass_episode) else: -- 2.34.1