Commit graph

142 commits

Author SHA1 Message Date
Dr.Blank
7802b79d30
feat: Add sonicAdventure method to MusicSection (#1361)
* 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>
2024-03-16 15:03:36 -07:00
Dr.Blank
cfce82af34
Fix class reference in fetchItems method (#1362) 2024-02-17 14:41:53 -08:00
Elan Ruusamäe
9d9dca8f44
Feature: Add source property to playlist items to support remote playlist entries (#1335)
* Add source property to Video

A Playlist entry if added a remote server item has field "source" initialized with value like `server://<server_id>/com.plexapp.plugins.library`

* Add source to Episode

* Fix flake8 error

E261 at least two spaces before inline comment

* Add source to Track

* Add source to Photo

* Rename the field to sourceURI

* Update plexapi/audio.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Update plexapi/photo.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Update plexapi/video.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Update plexapi/video.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Fix flake line length issue

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-02-17 14:16:10 -08:00
JonnyWong16
284a5773e3
Add genres attribute to Track (#1318)
* Add genres attribute to Track

* Test track genres

* Add GenreMixin to Tracks

* Add test for editing track genre
2024-02-17 14:11:07 -08:00
Dr.Blank
fe648f6382
bugfix: pass existing filters for albums method of Artist (#1347)
* bugfix: pass existing filters for `albums` method of `Artist`

* add test for bugfix
2024-02-04 11:23:56 -08:00
JonnyWong16
d9539a357d
Add SplitMergeMixin to Album (#1339) 2024-02-04 10:53:08 -08:00
Dr.Blank
9e8fcb5fa6
Add sonicallySimilar method to Audio class (#1288)
* 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>
2023-11-13 10:47:48 -08:00
JonnyWong16
b98b6050fe
Add properties to return the Plex Media Server data metadata paths (#1207)
* 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
2023-08-27 12:59:53 -07:00
JonnyWong16
8298a61b64
Add search kwargs to LibrarySection.get() (#1191)
* Optimize methods to use library get/search

* Revert methods

* Fix reloading of episodes for missing parentRatingKey

* Add tests for LibrarySection.get with kwargs
2023-07-27 18:02:23 -07:00
JonnyWong16
58e279b837
Create separate PlexHistory objects (#1185)
* Create new PlexHistory object

* Add test for PlexHistory object
2023-07-27 17:45:51 -07:00
JonnyWong16
9ede493f4c
Add LibrarySection methods to multi-edit items (#1184)
* 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
2023-07-27 14:45:23 -07:00
micha91
4946b4bc8b
Add Chapters to Track (#1134)
Audiobooks in m4b containers support chapters as meta data. These are provided in the XML, but not included in the Track Object of the plexapi
2023-05-24 12:04:03 -07:00
JonnyWong16
3c64bdb11c
Add support for editing addedAt field (#1107)
* Add AddedAtMixin

* Add tests for AddedAtMixin
2023-03-09 15:22:56 -08:00
JonnyWong16
020a32f2b8
Update PlexAPI to f-strings (#1000)
* Update plexapi to f-strings

* Update tests to f-strings
2022-08-27 22:56:01 -07:00
JonnyWong16
d1211722c8
Use pagination for /all endpoints (#990) 2022-08-26 22:45:15 -07:00
JonnyWong16
f0ed19c2fe
Add PlayedUnplayedMixin (#984)
* 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
2022-08-26 12:14:24 -07:00
JonnyWong16
925f573ced
Create separate PlexSession objects (#931)
* 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>
2022-07-20 20:03:20 -07:00
JonnyWong16
3107e25a0e
Fix searching and browsing Discover results (#970)
* 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
2022-07-20 19:37:48 -07:00
JonnyWong16
117af58897
Add guids attribute to Artist, Album, and Track (#968)
* Add guids attribute to Artist, Album, and Track

* PMS 1.27.0.5897 adds `<Guid>` tags with MusicBrainz ID to artists, albums, and tracks.

https://forums.plex.tv/t/plex-media-server-forum-preview-for-music-metadata/785088
https://forums.plex.tv/t/plex-media-server/30447/510

* Update audio guid tests
2022-07-20 19:35:46 -07:00
Matt McDowall
188b4a4e7e
Define ratingCount attribute in doc (#955) 2022-07-20 19:03:00 -07:00
JonnyWong16
2683655dcf
Get album track by track number without keyword argument (#918)
* Get album track by track number

* Update tests for `Album.track()`

* Also updates test for `Season.episode()`
2022-05-16 19:52:16 -07:00
JonnyWong16
49388558c3
Fix Artist.album() to return special albums (#896) 2022-02-26 23:16:48 -08:00
JonnyWong16
0cb8712896
Add missing Track.skipCount attribute (#893)
* Add track skipCount attribute

* Add track.skipCount to tests
2022-02-26 22:31:21 -08:00
JonnyWong16
3e57c9b262
Add extras and hubs mixins (#890) 2022-02-26 22:04:18 -08:00
JonnyWong16
59638dc714
Add new methods to edit object fields (#876)
* 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
2022-02-26 21:40:51 -08:00
ReenigneArcher
3917b335ca
Fix various typos (#880)
* 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>
2022-02-26 19:26:08 -08:00
ReenigneArcher
9a5170c2fb
Add Themes Support (#879)
* Fix typo in 'grandparentThumb'

* Add Themes support

* Fix Themes for Seasons and Episodes

Themes are not available for Seasons or Episodes according to this: https://web.archive.org/web/20150113085312/http://dev.plexapp.com/docs/agents/models.html

* Add Themes to Artists, Albums, and Tracks

Themes are available for Artists according to this: https://web.archive.org/web/20150113085312/http://dev.plexapp.com/docs/agents/models.html

* Update per PR review

* Update BaseResource and Theme classes

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-02-26 18:47:54 -08:00
meisnate12
2f101e3899
Add LabelMixin to Season, Episode, Artist, and Track objects (#872)
* Add LabelMixin to Episode class

* Add test_mixins.edit_label(episode) test

* Add Label Mixin to Season, Artist,and Track

* fix tests

* Load manual FilteringFields for labels

* Load manual FilteringFilters for labels

Co-authored-by: Elan Ruusamäe <glen@pld-linux.org>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-02-26 17:32:18 -08:00
jjlawren
8e30301296
Return all albums with Artist.albums() (#884) 2022-02-06 22:58:12 -06:00
jjlawren
570742cff8
Support for Artist radio stations (#870)
* Initial support of artist radio stations

* Fix docstring

* Change to a singular optional station

* Change to a property

* Revert property

* Explicitly set librarySectionID

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-01-23 20:39:35 -08:00
JonnyWong16
01131c95cf
Cleanup download methods (#847)
* Add utils.cleanFilename

* Refactor download methods

* Add option to download episodes, tracks, photos into subfolders

* Update download tests

* Test download keep_original_filename
2021-11-20 14:16:58 -08:00
JonnyWong16
bf3f0c1392
Merge branch 'master' into feature/album_types 2021-10-04 14:13:39 -07:00
JonnyWong16
3fce24587d
Merge pull request #810 from JonnyWong16/feature/web_url
Add methods to retrieve the Plex Web URL
2021-10-04 12:38:24 -07:00
JonnyWong16
49ce2f9bb4
Refactor getWebURL 2021-09-26 15:23:35 -07:00
JonnyWong16
607d4b0faf
Add album format and subformat tags 2021-09-16 15:03:46 -07:00
blacktwin
168f1d331c
Add attribute for Sonic Analysis (#814)
* adding new attribute found in Albums and Tracks when Sonically Analyzed

* update docstring and add property hasSonicAnalysis
2021-09-12 19:53:06 -05:00
JonnyWong16
9483e4d9c9
Add custom Plex Web URL override for track, photo, and playlist 2021-08-25 18:10:11 -07:00
JonnyWong16
6448837112
Fix return typo in doc strings 2021-06-06 14:54:15 -07:00
JonnyWong16
7e8c93dcc7
Merge remote-tracking branch 'upstream/master' into bugfix/cleanup_findItems 2021-06-06 14:50:39 -07:00
JonnyWong16
6e58f7f70e Refactor lastRatedAt userRating attributes 2021-05-30 15:49:45 -07:00
JonnyWong16
06ff7410a6 Add rating mixin 2021-05-30 15:49:45 -07:00
JonnyWong16
3fc69a3709
Refactor usage of findItems 2021-05-24 17:28:11 -07:00
JonnyWong16
c76b2d4027
Merge remote-tracking branch 'upstream/master' into feature/multi_sort 2021-05-23 20:39:08 -07:00
JonnyWong16
28f0585a97
Update doc string for track originalTitle 2021-05-15 22:39:26 -07:00
JonnyWong16
d6cd71c971
Add lastRatedAt to Audio and Video 2021-05-15 22:38:35 -07:00
JonnyWong16
12701ab997
Add trackNumber propery 2021-05-10 17:56:51 -07:00
JonnyWong16
246ad82f86
Add CollectionMixin to Season, Episode, and Track 2021-05-09 12:24:55 -07:00
meisnate12
5584ef1d4f
Added AdvancedSettingsMixin (#714)
* Added AdvancedSettingsMixin

* forgot import

* shortened line

* remove whitespace

* removed unused import

* reordered mixins

* Add preference method to AdvancedSettingsMixin

* Add tests for AdvancedSettingsMixin

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2021-04-05 15:44:49 -05:00
JonnyWong16
6e501728a0
Cast librarySectionID to int 2021-03-11 13:27:08 -08:00
JonnyWong16
c15133da88
Adds Movie and Artist advanced setting attributes (#680)
* 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
2021-03-11 11:20:28 -06:00