* Filter out bad discover search results
An stub object is sometimes returned from the API that is marked as
`'external'` but has has no `'SearchResults'` key.
{'id': 'external', 'title': 'More Ways To Watch', 'size': 0}
* Wrap line to fit 127c
* Ensure empty array for SearchResult
* Fix discover search results
* Plex API response changed to separate "Free on Demand" and "More Ways To Watch"
* Add test for searchDiscover
* Manually set watchlist and discover result to online metadata objects
* Replace all key format ratingKey with key
* Add libtype argument to searchDiscover
* Update tests for searchDiscover libtype
* Add includeUserState=1 parameter to Discover results details key
* Add method to return UserState object
* Remove Plex news
* Replace requests with query method for online hubs
* Add myPlexAccount watchlist methods
* Add mixin for objects that can be added to watchlist
* Add tests for watchlist
* Always split ratingKey from guid for watchlist
* Add method to retrieve streaming service availability
* Add test for streaming service availability
* Add filtering and sorting for watchlists
* Fix watchlist tests
* Add method to check if an item is on a user's watchlist
* Update watchlist tests
* Make account optional for WatchlistMixin
* Add Discover search
* Use manuallyLoadXML method for Discover search results
* Remove webshows and podcasts
* Fix WatchlistMixin account AttributeError
* Add BadRequest exception when adding to/removing from watchlist
* Update watchlist tests for BadRequest
* Update watchlist doc strings
* Fix various typos
* Fix various typos in tests
* Fix typos in `tests`
* Fix more typos
* Fix hasScalingMatrix test
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* Fix more library section ID cast to int
* Add method to return library size for specific libtypes
* Add test for library totalViewSize
* Fix totalViewSize test episode count
* Don't need to use library _totalSize cache
* Validate title search arg as a filter kwarg
* Only validate search title if it is a list
* Update doc string for totalViewSize
* Make test Plex Pass entitlements a subset
* Fix create MyPlexDevice race condition
* Rename to clientId to be consistent
* Move link method to MyPlexAccount