* timeline() now returns ClientTimeline objects
* timeline() creates and returns ClientTimeline objects with associated attributes and caching
* Refactor isPlayingMedia to use the new attributes and fix it's default value
* Clarify docstrings
* Remove default param in timeline call & fix docstring typo
* return empty list if `timelines()` comes back empty
Web clients can occasionally return no timelines if no media has been played on them or if nothing has played for a while, this prevents errors in those cases.
* typo
* Workaround for unresponsive clients
* Use sendCommand rather than timelines() for PTP workaround
* Remove workaround, set timeline's wait default to 1
* set timelines() wait default to 0, document buggy behavior
* Use ClientTimeline.key for consistency
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* cast playQueue's IDs as int
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* Add audio attribs & make casts bool from int where it makes sense.
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* Add Library timeline support
* Retry intentional failure with different canary test
* Temporarily disable activities tests
* Set tests for normal runs
* Add tests to validate library timeline attributes
* Add /activities endpoint support
* Fix typos, return a list instead of iterator
* Canary test to validate CI behavior
* Increase timer of canary test to ensure proper run
* Move test to front of run, provide auth and anon versions
* Fix typo
* Use new Plex Music metadata scanner in tests
* Update tests to match Plex Music scanner metadata
* More tweaks to audio metadata matching
* Another tweak
* Allow creating PlayQueues with multiple items, appending items
* Fix single-item playqueues, fix 'next', fix docstrings, run black
* Docstring updates
* More documentation fixes
* Allow removing items from a PlayQueue
* Use f-strings for readability
* Add ability to move items within the PlayQueue
* Cast attributes to proper types, update docs
* Format with black
* flake8 and sphinx fixes
* Reformat with black
* Update __contains__ to accept media objects
* Operate using media items, use methods similar to playlists
* Rename parameter to better match behavior
* Help users by automatically finding appropriate playQueueItemID values
* Add refresh method, auto-refresh before modifying playqueues
* Reformat with black
* Add TAG and TYPE to PlayQueue objects
* Review comments, add playQueueSelectedMetadataItemKey for Chromecast convenience
* Allow setting the playback start point in the PlayQueue
* Add tests, simplify size check
* Use camel case for helper function
* Add a helper to provide the selected item media object
Details:
* WHile Github correctly detects the BSD license from LICENSE.txt, Pypi does
not and needs either a Trove classifier or the license argument specified
in setup(). This change adds that the package supports the BSD license as
a classifier, following the recommendation in
https://packaging.python.org/guides/distributing-packages-using-setuptools/#license
Signed-off-by: Andreas Maier <andreas.r.maier@gmx.de>