Skip to content

Commit 39261fb

Browse files
authored
Fix audiobook playback (#346)
1 parent 63ac973 commit 39261fb

5 files changed

Lines changed: 404 additions & 2 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ repos:
7373
exclude: ^poetry\.lock$
7474
entry: poetry run codespell
7575
args:
76-
- --ignore-words-list=doen,te,ons,Racoon,Crate
76+
- --ignore-words-list=doen,te,ons,Racoon,Crate,Ede,succes
7777
- id: detect-private-key
7878
name: 🕵️ Detect Private Keys
7979
language: system

src/spotifyaio/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ class SimplifiedShow(DataClassORJSONMixin):
473473
href: str
474474
publisher: str
475475
description: str
476-
total_episodes: int
476+
total_episodes: int | None
477477

478478

479479
@dataclass

tests/__snapshots__/test_spotify.ambr

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6182,6 +6182,106 @@
61826182
'shuffle': False,
61836183
})
61846184
# ---
6185+
# name: test_get_playback_state[playback_audiobook_1.json]
6186+
dict({
6187+
'context': dict({
6188+
'context_type': <ContextType.SHOW: 'show'>,
6189+
'external_urls': dict({
6190+
'spotify': 'https://open.spotify.com/show/58cFIY8IT7yGqR3kHnKqzV',
6191+
}),
6192+
'href': 'https://api.spotify.com/v1/shows/58cFIY8IT7yGqR3kHnKqzV',
6193+
'uri': 'spotify:show:58cFIY8IT7yGqR3kHnKqzV',
6194+
}),
6195+
'currently_playing_type': 'episode',
6196+
'device': dict({
6197+
'device_id': '9e3c475ee7d51dbebb4547dbc5b57e35ee6707f8',
6198+
'device_type': <DeviceType.SMARTPHONE: 'Smartphone'>,
6199+
'is_active': True,
6200+
'is_private_session': False,
6201+
'is_restricted': False,
6202+
'name': 'Nothing phone (1)',
6203+
'supports_volume': False,
6204+
'volume_percent': 100,
6205+
}),
6206+
'is_playing': True,
6207+
'item': dict({
6208+
'description': '',
6209+
'duration_ms': 249652,
6210+
'episode_id': '3NW4BmIOG0qzQZgtLgsydR',
6211+
'explicit': False,
6212+
'external_urls': dict({
6213+
'spotify': 'https://open.spotify.com/episode/3NW4BmIOG0qzQZgtLgsydR',
6214+
}),
6215+
'href': 'https://api.spotify.com/v1/episodes/3NW4BmIOG0qzQZgtLgsydR',
6216+
'images': list([
6217+
dict({
6218+
'height': 640,
6219+
'url': 'https://i.scdn.co/image/ab676663000022a8ecf13d909d494c02ba057feb',
6220+
'width': 640,
6221+
}),
6222+
dict({
6223+
'height': 300,
6224+
'url': 'https://i.scdn.co/image/ab6766630000db5becf13d909d494c02ba057feb',
6225+
'width': 300,
6226+
}),
6227+
dict({
6228+
'height': 64,
6229+
'url': 'https://i.scdn.co/image/ab6766630000703becf13d909d494c02ba057feb',
6230+
'width': 64,
6231+
}),
6232+
]),
6233+
'name': 'Track 1',
6234+
'release_date': '0000',
6235+
'release_date_precision': <ReleaseDatePrecision.YEAR: 'year'>,
6236+
'show': dict({
6237+
'description': '''
6238+
Author(s): Anya Niewierra
6239+
Narrator(s): Nienke Brinkhuis, Cees van Ede, Mattijn Hartemink
6240+
<p>Na het succes van de bestsellers <i>Het bloemenmeisje</i> en <i>De Camino</i> komt Anya Niewierra met <i>De nomade</i>. Een aangrijpende thriller over vaderliefde en een verborgen verleden.</p>
6241+
<p>De 37-jarige documentairemaker Olga Liebke woont met haar zonderlinge vader in het Harz-gebergte. Olga heeft een innige band met de inmiddels dementerende man. Haar moeder stierf in het kraambed en ze heeft verder geen familie. Tenminste, zo is het verhaal.</p>
6242+
<p>Maar dan vertelt haar vader herinneringen die niet rijmen met de geschiedenis zoals zij die kent. Ze gaat twijfelen over haar achtergrond en ontdekt documenten uit de voormalige Sovjet-Unie.</p>
6243+
<p>Olga reist naar de driehoek Polen, Litouwen en Belarus en stuit op een huiveringwekkend geheim.</p>
6244+
<br>
6245+
<p>‘Anya Niewierra heeft met <i>De nomade</i> weer een magnifiek boek afgeleverd, dat mogelijk nog indrukwekkender is dan <i>De Camino</i>.’<br>
6246+
Heleen Spanjaard, <i>Margriet</i></p>
6247+
<p>‘Verrassend, meeslepend en bloedstollend. <i>De nomade</i> is een waardige opvolger van <i>De Camino</i>.’<br>
6248+
Rob Cobben, cultuurverslaggever <i>Dagblad De Limburger</i></p>
6249+
''',
6250+
'external_urls': dict({
6251+
'spotify': 'https://open.spotify.com/show/58cFIY8IT7yGqR3kHnKqzV',
6252+
}),
6253+
'href': 'https://api.spotify.com/v1/shows/58cFIY8IT7yGqR3kHnKqzV',
6254+
'images': list([
6255+
dict({
6256+
'height': 640,
6257+
'url': 'https://i.scdn.co/image/ab676663000022a8ecf13d909d494c02ba057feb',
6258+
'width': 640,
6259+
}),
6260+
dict({
6261+
'height': 300,
6262+
'url': 'https://i.scdn.co/image/ab6766630000db5becf13d909d494c02ba057feb',
6263+
'width': 300,
6264+
}),
6265+
dict({
6266+
'height': 64,
6267+
'url': 'https://i.scdn.co/image/ab6766630000703becf13d909d494c02ba057feb',
6268+
'width': 64,
6269+
}),
6270+
]),
6271+
'name': 'De nomade',
6272+
'publisher': 'Anya Niewierra',
6273+
'show_id': '58cFIY8IT7yGqR3kHnKqzV',
6274+
'total_episodes': None,
6275+
'uri': 'spotify:show:58cFIY8IT7yGqR3kHnKqzV',
6276+
}),
6277+
'type': <ItemType.EPISODE: 'episode'>,
6278+
'uri': 'spotify:episode:3NW4BmIOG0qzQZgtLgsydR',
6279+
}),
6280+
'progress_ms': 15611,
6281+
'repeat_mode': <RepeatMode.OFF: 'off'>,
6282+
'shuffle': False,
6283+
})
6284+
# ---
61856285
# name: test_get_playback_state[playback_episode_1.json]
61866286
dict({
61876287
'context': dict({

0 commit comments

Comments
 (0)