From: Fabian Munkes <105975993+fmunkes@users.noreply.github.com> Date: Tue, 4 Mar 2025 21:24:00 +0000 (+0100) Subject: ABS: fix for another unexpected API response (#1994) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=325a2afec04dad4271cf70af427d4f687c0ef369;p=music-assistant-server.git ABS: fix for another unexpected API response (#1994) --- diff --git a/music_assistant/providers/audiobookshelf/__init__.py b/music_assistant/providers/audiobookshelf/__init__.py index 30fc66b3..9f7de87b 100644 --- a/music_assistant/providers/audiobookshelf/__init__.py +++ b/music_assistant/providers/audiobookshelf/__init__.py @@ -574,7 +574,7 @@ class Audiobookshelf(MusicProvider): if media_type == MediaType.AUDIOBOOK: progress = await self._client.get_my_media_progress(item_id=item_id) - if progress is not None: + if progress is not None and progress.current_time is not None: self.logger.debug("Resume position: obtained.") return progress.is_finished, int(progress.current_time * 1000) @@ -1097,7 +1097,7 @@ class Audiobookshelf(MusicProvider): # timestamp, we do not update again. if not self.progress_guard.guard_ok_abs(progress): continue - if not progress.current_time >= 30: + if progress.current_time is not None and not progress.current_time >= 30: # same as mass default, only > 30s continue if progress.library_item_id not in known_ids: @@ -1113,6 +1113,8 @@ class Audiobookshelf(MusicProvider): # helper progress also ensures no useless progress updates, # see comment above self.progress_guard.add_progress(progress.library_item_id) + if progress.current_time is None: + return mass_audiobook = await self.mass.music.get_library_item_by_prov_id( media_type=MediaType.AUDIOBOOK, item_id=progress.library_item_id, @@ -1130,6 +1132,8 @@ class Audiobookshelf(MusicProvider): # helper progress also ensures no useless progress updates, # see comment above self.progress_guard.add_progress(progress.library_item_id, progress.episode_id) + if progress.current_time is None: + return _episode_id = f"{progress.library_item_id} {progress.episode_id}" try: # need to obtain full podcast, and then search for episode diff --git a/music_assistant/providers/audiobookshelf/manifest.json b/music_assistant/providers/audiobookshelf/manifest.json index 84f410ec..83246288 100644 --- a/music_assistant/providers/audiobookshelf/manifest.json +++ b/music_assistant/providers/audiobookshelf/manifest.json @@ -7,7 +7,7 @@ "@fmunkes" ], "requirements": [ - "aioaudiobookshelf==0.1.3" + "aioaudiobookshelf==0.1.4" ], "documentation": "https://music-assistant.io/music-providers/audiobookshelf", "multi_instance": true diff --git a/music_assistant/providers/audiobookshelf/parsers.py b/music_assistant/providers/audiobookshelf/parsers.py index c017b391..c1f2258b 100644 --- a/music_assistant/providers/audiobookshelf/parsers.py +++ b/music_assistant/providers/audiobookshelf/parsers.py @@ -141,7 +141,7 @@ def parse_podcast_episode( [MediaItemImage(type=ImageType.THUMB, path=url_cover, provider=lookup_key)] ) - if media_progress is not None: + if media_progress is not None and media_progress.current_time is not None: mass_episode.resume_position_ms = int(media_progress.current_time * 1000) mass_episode.fully_played = media_progress.is_finished @@ -217,7 +217,7 @@ def parse_audiobook( mass_audiobook.authors.set([abs_audiobook.media.metadata.author_name]) mass_audiobook.narrators.set([abs_audiobook.media.metadata.narrator_name]) - if media_progress is not None: + if media_progress is not None and media_progress.current_time is not None: mass_audiobook.resume_position_ms = int(media_progress.current_time * 1000) mass_audiobook.fully_played = media_progress.is_finished diff --git a/requirements_all.txt b/requirements_all.txt index afa499d8..0cff3367 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1,7 +1,7 @@ # WARNING: this file is autogenerated! Brotli>=1.0.9 -aioaudiobookshelf==0.1.3 +aioaudiobookshelf==0.1.4 aiodns>=3.2.0 aiofiles==24.1.0 aiohttp==3.11.12