implement podcast functionality
Work-in-progress implementation of podcasts. Still needs quite a bit of work, but this is a large change so I thought I'd open it up in draft mode in case anyone has any comments along the way.
Playback is working for podcast episodes, as is searching for specific episodes. But the playback is still not being populated—in the process of tracking down why that isn't happening now
Fixes #359 Fixes #457
Checklist (based on https://github.com/aome510/spotify-player/issues/457#issuecomment-2156052760)
- [x] Search
- [x] Shows (podcasts)
- [x] Episodes (podcast episodes)
- [x] Context menu
- [x] Shows
- [x] Copy link
- [x] Follow
- [x] Episodes
- [x] Go to show
- [x] Copy link
- [x] Add to playlist
- [x] Add to queue
- [x] Shows
- [x] Show detail page
- [ ] Playback
- [x] Play audio
- [ ] Show playback status
Screenshots
Search page
Show detail page
Anything I can do to help? I would love this feature!
Anything I can do to help? I would love this feature!
The biggest outstanding "unknown" is why the playback screen is still blank after starting playback for an episode, so any help diagnosing this would be fantastic.
The info in https://github.com/aome510/spotify-player/issues/359 may be helpful here. I was hopeful that updating streaming.rs to handle episode player events would fix it, but no dice so far.
In general, I'm probably gonna be a bit short on time to be able to push this PR forward this week, but should have more time next week.
This pull-request is already going to be a doozy to review, so I figured I should open it up for a first look now.
Most of the functionality outlined in #457 is implemented here, save one very important part: rendering the currently playing episode in the Player UI. I've been trying to debug why the playing episode does not show up there, but haven't had too much luck yet. I know that playback.item in https://github.com/aome510/spotify-player/pull/552/files#diff-3ee6f331c585285645123ea35a2b8ad7db4d450994a9429b78c4856c6531c410R19 returns None even when an episode is playing, but as far as I can tell, item is set by Spotify itself, so I'm not sure why it's not Some(PlayableItem::Episode). Would appreciate help in debugging this
Lots of errors in CI. I've been testing without enabling features—will update the PR to account for the various features as well
Thanks @SebRollen for the PR and implementing this big feature! I'm still half-way reviewing it. Just to give you an update. Sorry for the delay cause I haven't found time to work on this project lately.
@aome510 it's all good, I know it's quite a few changes to review in one go.
If it's helpful, I'm happy to try to break it into smaller chunks if you're willing to merge in partial updates to the feature. I found it hard initially to find a natural point to split the PR into smaller chunks without merging in a half-baked feature, but maybe we could get all the "backend" parts before adding in the UI updates? Let me know what's most helpful for you
If it's helpful, I'm happy to try to break it into smaller chunks if you're willing to merge in partial updates to the feature. I found it hard initially to find a natural point to split the PR into smaller chunks without merging in a half-baked feature, but maybe we could get all the "backend" parts before adding in the UI updates? Let me know what's most helpful for you
The current PR as-is is good to me as it helps me to understand how different parts of the system work together.
@SebRollen I finally had a chance to get back to this PR and finish it. I've also added playback support. The remaining item is to implement command handler for episode table window, which I will address in a future PR.