[0.11.0] - 2023-09-10
This version went through a major refactor, which resulted in a different arcitecture of the app to support new features, the rewrite of many pieces, as well as new features.
Added
- The concept of a
Queue. Videos can now be queued to play one after another.- Currently the queue is funcitonal, but no proper UI to support it, such as seeing the queue, clearing it, and so on.
- UI for the
Queuewill be introduced in a future version. - Videos and playlists can be queued from the web app
- Support for Playlists
- Home screen now shows both created and saved playlists
- Playlists have their own view to scroll through their videos
- Playlist videos play one after the other
- Playlists show up in search results
- Continious scrolling of feed where supported (pagination)
- Subscriptions, Search, Playlists and Search based feeds (like
FunnyandNewsin the home screen) - Not yet supported in the web app
- Subscriptions, Search, Playlists and Search based feeds (like
- Home screen placeholder items while items are loading
- Settings screen has been rewritten with a better design
- Access to public instances
- New UI to list public instances, or to specify a custom instance
- Testing system to make sure the instance is properly setup and usable
- Playlet now tolerate certain missing configurations in Invidious (such as not configuring the domain)
- Better error handling, error dialogs, with more information on what went wrong
- Multiple Brighterscript plugins to support different functionalities of the app
- Testing framework, and some tests
- Performance imporvements
- Lazy loading where applicable
- Screens do not load until opened for the first time
- Not all feeds are loaded at once, feeds are loaded on demand while scrolling
- App profiled, some bottlenecks identified and fixed
- QR Code generation happens on background thread
- More consistent logging, and the ability to retreive a log file of current run and the previous run
- New
HttpClientfor making web requests, which supportsSendAndForgetand Cancellation, with a reducedrendezvous - Open API spec file describing available APIs in the Playlet Web Server
Changed
- Lots of refactors and rewrites in general
- The developer settings are now always visible in the web app
- The web server is now decoupled from Playlet specific logic
- When not logged in, authenticated feed (like user Subscriptions and Playlists) show a "Login to view X" message, with a QR Code that redirects to the login screen
- [Breaking change] web apis changed a bit (for example the
/api/commandendpoint is removed) refer to the Open API spec - If the Invidious auth token is missing permissions (A token aquired using a previous version of Playlet) you will be auto logged out.
Removed
roku-requestspackage. A new HttpClient has been written to fit the need of Playlet instead. Some of the reasons to do this:- It was causing a lot of
rendezvous - It has no real way to send a request without waiting for it to finish (send and forget)
- Some of the API was quirky (need to specify
parseJson: falseto ask it NOT to parse the response) - It reads the response data, headers, error codes and etc even if they are not needed
- Excessive logging without a way to toggle it, or redirect it to a file
- It was causing a lot of
- Some unused parts of the code (Like basic auth in the server, WebSockets, RegistryRouter, Kanji QR Code)
- These were unsued and/or feature flagged features. Things can be restored as needed.
- The video player loading spinner when the video is minimized: this added too much hacky code with minimum value.
Fixed
- Different issues caused by background tasks in the home screen
- An issue caused by manipulating the loading spinner on the video player
- An issue where the web server hangs if the payload contains unicode characters