* Add support for editing audience ratings and critic ratings
* Note: Not all types of ratings are supported/shown in the Plex UIs. However they can be edited/updated and stored in the Plex Media Server database.
* Add tests for editing audience rating and critic rating
* Add sonicAdventure method to MusicSection
* satisfy flake8
* sonicAdventure accepts Track as param
* test with both types for sonicAdventure
* Add authentication to recently added music test
* Fix test_library.py to include missing newline character
* Add sonicAdventure method to Track class
* fix doc as suggested
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* fix bound on sonicAdventure method
- add type to docstr
* Apply suggestions from code review
- pass in plexpass account to tests
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* make tests pass on bootstrap
- still asserts it is an iterable
- still checks all elements are tracks
- in case no adventure found, does not fail
---------
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* Move videoStreams, audioStreams, lyricStreams to Playable
* Add lyricStreams to Playable
* Simplify returning list of streams
* Add test for track.lyricStreams()
* Add sonicallySimilar method to Audio class
closes#1183
* Add type hinting for method
- fixes import error
* Apply review suggestions
Co-Authors @JonnyWong16
* Add optional parameters to sonicallySimilar method
- makes it so that params can be None and use the server default
* add test for `sonicallySimilar`
* Refactor test to check type of elements
* Apply suggestions
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* Add authentication to sonicallySimilar test in
test_audio.py
* fix flake8
---------
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* Use generator for string join
* Group media type edit mixins
* Add UserRatingMixin
* Add LibrarySection methods to multi-edit items
* Remove deprecated banners
* Factor out resource lock/unlock mixins
* Update `fetchItems` to accept list of rating keys
* Add repr and helper methods to Common object
* Update tests
* Add base findItem method
* Create new PlexSession objects
* PlexSession objects are unique from their base media objects. These objects are built from `/status/sessions` instead of `/library/metadata/<ratingKey>`. This allows reloading data from sessions without overwriting them.
* Add some media and client attributes for sessions
* Add separater property to return the PlexSession user object
* This speeds up building the `PlexSession` object since it doesn't need to lookup the user.
* The user object is also cached for future lookups.
* Remove PlexSession attributes from tests
* Never auto reload a PlexSession object
* Rename PlexSession.usernames for backwards compatibility
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* Don't cache myPlexAccount in PlexSession
* Move session stop method to PlexSession
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* Update Collection.edit() method
* Add new EditFieldMixin and subclasses
* Add EditFieldMixin to Plex objects
* Update PlexPartialObject.edit() doc string
* Cast Track parentIndex to int
* Add base _searchTypes property
* Add kwargs to editField
* Editing album title also requires the artist ratingKey
* Add tests for editing fields
* Deprecate Collection.edit()
* Make editing fields chainable
* Add chaining example to doc string
* Add batch editing mode
* Add test for batchEdits
* Clean up mixins imports
* Reorder mixins
* Fix tests for batch edit
* Add private _edit method
* Add fields attribute to playlists
* Add lock and unlock methods to art, banner, and poster mixins
* Add tests for locking and unlocking art and posters
* Add advanced setting attributes to movie
* Add advanced setting attributes to artist
* Update tests for movie advanced setting attributes
* Update tests for artist advanced setting attributes
* Fix artist albumSort attribute
* moving common child (VideoStream, AudioStream, SubtitleStream) attributes to the parent (MediaPartStream)
* removal of no longer present attribs in video, audio, subtitle streams
* additional attribs to video and mediapart streams
* removal of previously unique subtitleStream attribs. attribs are now common or no longer present.
* docstring cleanup of video, audio, and subtitle stream; pass 1
* remove codecID checks as this attribute is now longer used.
* adding key attrib to parent MediaPartStream.
* add transient to SubtitleStream, found in uploaded subtitles
* removing dialogNorm related assertion as this attrib has been removed.
* update Media class based on PR comments
optimizedVersion to be added, need SEARCHTYPES
* update MediaPartStream class based on PR comments
* update VideoStream class based on PR comments
* update AudioStream class based on PR comments
* update SubtitleStream class based on PR comments
* add LyricStream class based on PR comments
* add streamType int and LyricStream to MediaPartStream.parse method
* add MediaPart.lyricStreams method
* spelling correction
* more movement based on PR comments
* alpha ordering MediaPart
* alpha sort VideoStream
* docstring corrections
* remove assert stream.dialogNorm from audio test as dialogNorm has been removed.
* adding LyricStream to _buildStreams function
* adding changes from @johnnywong16
e346f0b4dc
* moving unused imports down and together
* Address docstring review comments
* Change isChildOf for any kwargs
* Add Media.isOptimizedVersion property
* Add photo and track specific attributes
* Remove dead MediaPartStream.parse method
* Update media doc strings
* Add optimized version doc string
* Cast video stream codedHeight and codedWidth to int
* Add required bandwidths to streams
* Update video tests
* Update audio tests
* Fix video tests
* Fix video tests
* Fix video tests
Co-authored-by: Jason Lawrence <jjlawren@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>