* Add PlayedUnplayedMixin
* Deprecate Video isPlayed, markWatched, and markUnwatched
* Rename all deprecated methods
* Return self to enable method chaining
* Update tests for audio markPlayed / markUnplayed using history
* Remove duplicate video history tests
* Add PlexObjects for all library media tags
* Add method to return all library media tags
* Add test for Library.tags
* Update Video.optimize
* Update video optimize test
* Use TAGTYPE for LibraryMediaTags
* Accept LibraryMediaTag as a search filter
* Use ratingKey and id before key in repr
* 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>
* Rename _autoReload to _overwriteNone
* Allow disabling auto reloading
* Update test for disabling auto reloading
* Change autoReload to private attribute
* Refactor tag functions into EditTagsMixin
* Fix test mixins tag use of _tagSingular
* Add kwargs to editTags
* Fix _tagSingular and _tagPlural if tag is already singular or plural
* Make editing tags chainable
* Add chaining example to doc string
* Update editTags doc string for batch editing
* 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
* 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>
* 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