* 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>
* Simplify MediaPart._buildStreams
* Remove isChildOf check for photo and track attributes
* Add parent object when automatically building PlexObject
* Remove check of track only attribute in tests
* Add support for on-demand subtitle search
* Clean up uploadSubtitles and removeSubtitles methods
* Add test for on-demand subtitles
Account is required for on-demand subtitles
* Add hearingImpaired and perfectMatch to SubtitleStream attributes
* Update subtitle score doc string
The score is the OpenSubtitles download count
Ref: https://forums.plex.tv/t/subtitle-search-update-opensubtitles/862746
* 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>
* Fix minor typo
* Update algorithm for parsing #1274
* Match style guide of the module
* Fix Edge Cases
- `and` is now considered the default operation instead of raising error
- fix algorithm so that the reserved keys are parsed in the filters dictionary instead of filters group when located later in the feed.
- removed some code repetition
* Join multiple filters by default
If multiple filter groups are parsed they are joined by `and` instead of raising error.
* fix `==` operator parsing
transfers "=" from the value to key
* fix typehinting
* Add new test for smart Filters
this test would fail on old algorithm despite it being logically the exact same filter.
* add test for deeply nested filters
* combine filters test for playlist
* combine filters test for collections
* fix typo
* add test to check parsed fitlers as it is
* edited test to be independent of the server
* Apply suggestions from code review
adhere to style guide of the project
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
---------
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
* tests: skip additional tests that require Plex Pass
* tests(test_myplex_users): check if first user has access to any server
* tests(fixture): adjust plex pass required skip message
* Add property to return the Plex Media Server data metadata path
* Add property to return the filepath for a resource
* Add tests for metadataDirectory and resourceFilepath
* Optimize methods to use library get/search
* Revert methods
* Fix reloading of episodes for missing parentRatingKey
* Add tests for LibrarySection.get with kwargs
* 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
* Update MyPlexAccount to use Plex API v2
* Update MyPlexAccount test
* Add rememberMe option to MyPlexAccount sign in
* Update MyPlexAccount do string
* Reload when accessing audioStreams or subtitleStreams
* Add setDefault method to AudioStream and SubtitleStream
* Update subtitle test
* Add `videoStreams()` convenience method
* Add test for `videoStreams()` method
* Add `seasonCount` attribute to `Show`
* Add test for show seasonCount
* Fix season year test
* Fix show studio test
* Fix season year test
Season year metadata is flakey
* Properly close file object in mixin uploads
* Also support a file-like object as the upload `filepath` parameter
* Update image upload tests for file-like object
* Use @cached_property in PlexSession.user
* Use @cached_property in PlexServer.library
* Use @cached_property in PlexServer.settings
* Tests: Update clearing plex.settings cache
* Use @cached_property in LibrarySection.totalSize
* Add backports.cached-property==1.0.2; python_version<="3.7" dependency
* Import cached_property from dist or backports
* Add backports.cached-property to requirements_dev.txt
* Remove version pin for backports.cached-property in requirements.txt
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>