feat(watchlist): display media from external API as a DiscoverSliderType #4068
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Defines a new
DiscoverSliderType
namedExternalWatchlistSlider
, which pulls TMDB IDs from a given external API and displays them in a slider view, very similar to how Overseerr displays your Plex Watchlist.I'm pretty inexperienced with React so I leaned heavily on existing conventions within the project—namely the
PlexWatchlistSlider
. This implementation displays the first 20 results from your external API (in my example, a scraped Google Watchlist from a personal project, but ideally it would be able to display the full results of the API in a paginated/infinite scroll view similar to the Plex Watchlist.The challenges here, as far as I can tell, are:
ListView
route per slider—though a way around this is to have one route with parameters passed to it (/discover/external-watchlist?apiUrl=http://example.com/api&pageParam=p
)p=X
orpage=X
, or perhaps something else?WatchlistItem[]
?Perhaps these challenges could be out of scope of this feature request and it could simply be a
DiscoverSliderType
. This could especially work if it were paired with alinkUrl
property so as to link to your external list rather than try to build a frontend into Overseerr—but of course then you lose the request functionality on the rest of your external list.I am very green to contributing to open source, very green to React, and more generally comfortable with HTML and CSS than with complex JS so please feel free to tear it apart! If you've read this far, thank you for your time ❤️
Screenshot (if UI-related)
External Watchlist slider being added
External Watchlist slider in the discover edit view
External Watchlist slider on the discover page
To-Dos
yarn build
yarn i18n:extract
Issues Fixed or Closed
N/A