Skip to content

Full Podcast support#581

Merged
Rigellute merged 35 commits into
Rigellute:masterfrom
sputnick1124:podcast-support-search
Oct 1, 2020
Merged

Full Podcast support#581
Rigellute merged 35 commits into
Rigellute:masterfrom
sputnick1124:podcast-support-search

Conversation

@sputnick1124
Copy link
Copy Markdown
Contributor

@sputnick1124 sputnick1124 commented Sep 19, 2020

Fully functional as is, but still missing some features that I think should be implemented before this is considered complete. Here's the status on this thus far. Open to cutting this PR here and opening new PRs for remaining tasks. Otherwise, I plan on getting rid of the draft status when the following are complete:

  • Podcast shows search results
  • Library podcast view
  • Podcast show episode table
    • Show current progress in episode in duration field
    • Show completed episodes (use ✔️ to signify played status)
    • Display episode description with new hotkey (CTRL-]?)
      *Paged episode results
  • Follow/Unfollow podcasts (from episode table, show search view, and playbar context)

UPDATE: This PR is getting to be pretty big already. I think the other features can be implemented piecemeal in smaller PRs to follow. Some of these are fairly simple and could be good opportunities for newcomers to get their feet wet in the project.

tty
Note that the above GIF shows the progress bar from #563

Nicklas Stockton and others added 28 commits February 4, 2020 15:31
Still populating each item with some dummy values and don't currently
update the selected show index, but navigation seems to work mostly
correctly.
Still need to clean a number of things up in the display
Changed:
* Display "Date - Title - Duration" for episodes instead of full
  description (it was too wordy/messy for most podcasts)
* Properly mark the currently playing episode
This commit will force a re-auth of the app since it requires the
`user-read-playback-position` scope.

Changes:
* Display <curr progess> / <duration> in the Duration column for
  episodes
* Display ✔ next to episodes that have been fully played
There is currently no such thing as a context for playing episodes, and
the only collection of episodes that is possible is the episodes from a
show, so there's not currently a need to handle the playing or
navigation context of the episode table. If there is some time in the
future when it makes sense, it can be implemented then.
@sputnick1124 sputnick1124 marked this pull request as ready for review September 22, 2020 03:53
@Rigellute
Copy link
Copy Markdown
Owner

Wow! Amazing work @sputnick1124 - I will get to reviewing this as soon as I can.

@sputnick1124
Copy link
Copy Markdown
Contributor Author

Awesome! I wasn't sure where to put the search results without cluttering up the page, while also making them easy to get to, so if the layout seems bad to people, we can figure out a better way. I think tui-rs has tab support, so we could leverage that perhaps. I'm open to any changes that we think should be made to either the UI or implementation.

@sputnick1124 sputnick1124 mentioned this pull request Sep 29, 2020
Copy link
Copy Markdown
Owner

@Rigellute Rigellute left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really impressive work @sputnick1124, this looks great.

I've just got one question about unfamiliar syntax, but we should be good to go.

Comment thread src/handlers/episode_table.rs Outdated
Comment thread src/handlers/episode_table.rs
Comment thread src/ui/mod.rs
Comment thread src/ui/mod.rs
@Rigellute Rigellute merged commit 79c280f into Rigellute:master Oct 1, 2020
@Rigellute
Copy link
Copy Markdown
Owner

👏

@Rigellute
Copy link
Copy Markdown
Owner

@all-contributors please add @sputnick1124 for code, bug, maintenance, question, doc

@allcontributors
Copy link
Copy Markdown
Contributor

@Rigellute

I've put up a pull request to add @sputnick1124! 🎉

lanej pushed a commit to lanej/spotify-tui that referenced this pull request Jul 13, 2021
* Handle ctrl-h like backspace

* Stub out podcast search results

* Draw podcast search results

* Draw rough podcast episode table

Still populating each item with some dummy values and don't currently
update the selected show index, but navigation seems to work mostly
correctly.

* Stub out EpisodeTable handlers

* Get episode playback working.

Still need to clean a number of things up in the display

* Rename MyShows -> SavedShows

* Make borrow checker happy

* RustFmt fixes

* Better Date/Title/Duration layout

Changed:
* Display "Date - Title - Duration" for episodes instead of full
  description (it was too wordy/messy for most podcasts)
* Properly mark the currently playing episode

* Show episode resume point/played status

This commit will force a re-auth of the app since it requires the
`user-read-playback-position` scope.

Changes:
* Display <curr progess> / <duration> in the Duration column for
  episodes
* Display ✔ next to episodes that have been fully played

* rustfmt appeasement

* Get rid of EpisodeTableContext

There is currently no such thing as a context for playing episodes, and
the only collection of episodes that is possible is the episodes from a
show, so there's not currently a need to handle the playing or
navigation context of the episode table. If there is some time in the
future when it makes sense, it can be implemented then.

* Add jump_to[start|end] for show episodes

* Remove debug print

* Update to match new tui API

* Make rustfmt happy

* Toggle order of podcast episodes

* Handle ShowSearch for new key option

* Use user config'd keys for paging

Co-authored-by: Nicklas Stockton <nicklas.stockton@ngc.com>
nighi pushed a commit to nighi/spotify-tui that referenced this pull request Jul 11, 2025
* Handle ctrl-h like backspace

* Stub out podcast search results

* Draw podcast search results

* Draw rough podcast episode table

Still populating each item with some dummy values and don't currently
update the selected show index, but navigation seems to work mostly
correctly.

* Stub out EpisodeTable handlers

* Get episode playback working.

Still need to clean a number of things up in the display

* Rename MyShows -> SavedShows

* Make borrow checker happy

* RustFmt fixes

* Better Date/Title/Duration layout

Changed:
* Display "Date - Title - Duration" for episodes instead of full
  description (it was too wordy/messy for most podcasts)
* Properly mark the currently playing episode

* Show episode resume point/played status

This commit will force a re-auth of the app since it requires the
`user-read-playback-position` scope.

Changes:
* Display <curr progess> / <duration> in the Duration column for
  episodes
* Display ✔ next to episodes that have been fully played

* rustfmt appeasement

* Get rid of EpisodeTableContext

There is currently no such thing as a context for playing episodes, and
the only collection of episodes that is possible is the episodes from a
show, so there's not currently a need to handle the playing or
navigation context of the episode table. If there is some time in the
future when it makes sense, it can be implemented then.

* Add jump_to[start|end] for show episodes

* Remove debug print

* Update to match new tui API

* Make rustfmt happy

* Toggle order of podcast episodes

* Handle ShowSearch for new key option

* Use user config'd keys for paging

Co-authored-by: Nicklas Stockton <nicklas.stockton@ngc.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants