Commit graph

1006 commits

Author SHA1 Message Date
jjlawren
2f4a7506dc
Make Photo objects Playable (#592)
* Make Photo objects Playable

* Add more attributes
2020-11-01 15:02:23 -06:00
Steffen Fredriksen
380fd784c4
Merge pull request #582 from pkkid/photo_download
Add download feature to Photo library
2020-11-01 13:06:41 +01:00
Steffen Fredriksen
da1181228a
Merge pull request #583 from pkkid/clean_optimize
Updating cleanBundles() and optimize() methods
2020-11-01 13:05:38 +01:00
Steffen Fredriksen
114d907443
Merge pull request #585 from jjlawren/gdm_scan_clients_with_all
Allow scanning for clients when using GDM.all()
2020-11-01 13:05:07 +01:00
Steffen Fredriksen
60d1fc6daa
Merge pull request #588 from pkkid/field_correction
Collection fields not pulling locked fields
2020-11-01 13:01:45 +01:00
jjlawren
83947b0e29
Don't overwrite existing attributes with an empty list (#594)
* Don't overwrite existing attributes with an empty list

* Also check for empty lists in __eq__
2020-10-31 00:13:19 -05:00
blacktwin
11dcf0b5f4 Merge remote-tracking branch 'remotes/origin/master' into photo_download 2020-10-23 15:50:20 -04:00
blacktwin
c6458a41a5 addressing #587 2020-10-21 08:58:56 -04:00
Jason Lawrence
40e295ddf9 Allow scanning for clients when using GDM.all() 2020-10-13 17:00:34 -05:00
blacktwin
b8fbe7235f updating cleanBundles() and optimize() methods 2020-10-10 15:09:22 -04:00
blacktwin
411018dd37 add iterParts() and download() methods to Photoalbum class 2020-10-10 15:00:19 -04:00
blacktwin
0e8b2e88db add download() method to Photo class 2020-10-10 14:55:49 -04:00
blacktwin
717b274d82 add iterParts() method to Photo class 2020-10-10 14:55:16 -04:00
jjlawren
7dad2a8931
Add server handling of HTTP status code 204 (#580) 2020-10-08 12:51:19 -05:00
Ryan Meek
f9f3535751
Update timeline to return an active timeline object w/ attributes (#572)
* 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>
2020-10-02 11:33:53 -05:00
Steffen Fredriksen
163d94d249
Merge pull request #507 from pkkid/show_advanced_setting
Edit Library and Show's Advanced Settings
2020-10-02 12:24:08 +02:00
Steffen Fredriksen
6a5981c888
Merge pull request #518 from pkkid/library_hubs
Library Hubs and Music Stations
2020-10-01 15:47:59 +02:00
jjlawren
eef7b3f843
Bump to 4.1.2 release (#578)
Compatibility fixes for Python 3.5
2020-09-28 13:23:46 -05:00
blacktwin
4f96838b3d update sort field in library.ShowSection.recentlyAdded method 2020-09-28 13:51:53 -04:00
Andrew Gaffney
14b8d0e8c8
Replace format strings with explicit call to format() for backward compatibility (fixes #576) (#577) 2020-09-28 08:41:18 -05:00
blacktwin
d5f9004e7b
Merge branch 'master' into library_hubs 2020-09-28 08:13:59 -04:00
blacktwin
56b6138ca7
Merge branch 'master' into show_advanced_setting 2020-09-28 08:12:39 -04:00
jjlawren
737401be0e
Bump to 4.1.1 release (#574) 2020-09-21 16:17:47 -05:00
jjlawren
860ad7bc3e
Add Library timeline support (#573)
* 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
2020-09-21 16:06:14 -05:00
jjlawren
8410d81520
Add 'activities' endpoint support (#569)
* 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
2020-09-16 18:16:01 -05:00
jjlawren
fb82bc402b
Playqueue improvements (#563)
* 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
2020-09-11 16:23:27 -05:00
blacktwin
58a432f176 flake fix 2020-09-09 15:25:38 -04:00
blacktwin
c6f60d231c flake fix 2020-09-09 15:25:07 -04:00
Kyle Zimmerman
ad8fd58c66
Add optional continuous arg to PlayQueue.create() (#561) 2020-09-05 23:33:32 -05:00
jjlawren
f0afbc6922
Bump to 4.1.0 release (#556)
Change log: https://github.com/pkkid/python-plexapi/compare/4.0.0...79e99af
2020-08-20 11:01:53 -05:00
jjlawren
5b7d48fc26
Improve clips handling (#541)
* Improve clips handling

* Remove year, add extraType

* Don't bother refreshing for missing attribute

* Update with attributes found in payload

* Update docstrings for clips
2020-08-20 10:08:47 -05:00
jjlawren
fe27d7644f
Add iterator for Playlist objects (#549) 2020-08-11 12:11:53 -05:00
Steffen Fredriksen
d73cec3b7d
Fix some flake issues (#540) 2020-08-07 15:34:57 -05:00
jjlawren
dbc5adc744
Fix datetime import error in utils.py (#545) 2020-08-07 15:31:54 -05:00
jjlawren
eaff00d728
Fix Album iterator (#544) 2020-08-07 12:47:26 -05:00
blacktwin
7d97834b03
Merge branch 'master' into library_hubs 2020-08-02 23:44:11 -04:00
Steffen Fredriksen
07674a2c65
Merge pull request #512 from pkkid/optimize_update
Video optimize update
2020-08-02 16:11:05 +02:00
Steffen Fredriksen
5299282599
Merge pull request #509 from pkkid/adding_fields
Add fields to most objects
2020-08-02 16:09:33 +02:00
blacktwin
614108fb63 create allSubfolders method for library.Folder class 2020-07-30 10:33:58 -04:00
blacktwin
18973e2f2d update editAdvanced method to work with py2 drop 2020-07-28 11:16:31 -04:00
blacktwin
5045ddc04b removed deprecated _str function as py2 support has been dropped
update _str references to use builin str instead
update settings.Preferences class for py2 drop
2020-07-28 11:15:29 -04:00
blacktwin
252d7e05a8 update video.Video.optimize method to use new library.LibrarySection._locations method 2020-07-24 14:11:01 -04:00
blacktwin
3c0fa04a12 create _locations method in library.LibrarySection to return the librar.Location objects 2020-07-24 14:09:58 -04:00
blacktwin
142448b4c8 return library.LibrarySection.locations to previous listAttrs that returns a str 2020-07-24 14:09:13 -04:00
Steffen Fredriksen
6573b8b562
Merge pull request #531 from tdorsey/patch-2
chore(utils): fix typo
2020-07-24 12:01:35 +02:00
Nate Harris
f5647e52c2
Playlist creation - check items are included, raise exception 2020-07-23 19:31:27 -04:00
tdorsey
7c346f9917
chore(utils): fix typo 2020-07-18 08:45:41 -04:00
blacktwin
83c4e64ed6 add library.Collection._preferences() method 2020-07-02 14:40:28 -04:00
blacktwin
2112f778db create library.folders method 2020-07-02 01:33:36 -04:00
blacktwin
a5b5438122 create library.Folder class 2020-07-02 01:33:18 -04:00
blacktwin
f079f7d061 library.FirstCharacter docstring 2020-07-02 00:43:21 -04:00
blacktwin
5c3695d223 library.FieldType docstring 2020-07-02 00:42:51 -04:00
blacktwin
6cad8c1eb0 library.Operator docstring 2020-07-02 00:42:28 -04:00
blacktwin
8aa492f195 library.FilterField docstring 2020-07-02 00:40:51 -04:00
blacktwin
bf5d8b8ba3 library.Sort docstring 2020-07-02 00:40:12 -04:00
blacktwin
1e58e9c5fd library.Field class rename to FilterField
update library.LibrarySection.filterFields() usage
2020-07-02 00:39:34 -04:00
blacktwin
8eadcb28aa library.LibrarySection.filterFields() docstring 2020-07-02 00:37:50 -04:00
blacktwin
257b7ae61e library.LibrarySection._sorts() docstring 2020-07-02 00:36:46 -04:00
blacktwin
23e641eaa3 change if to check both conditions at the same time.
thanks @hellowlol
2020-07-01 22:28:25 -04:00
blacktwin
ea6538f596 removal of all ALLOWED_FILTERS, ALLOWED_SORT, BOOLEAN_FILTERS instances and docstring references. 2020-06-30 09:39:16 -04:00
blacktwin
14c122c87b update library.LibrarySection._cleanSearchSort method to pull sort keys from LibrarySection._sorts() instead of using hardcoded ALLOWED_SORT. 2020-06-30 09:33:53 -04:00
blacktwin
a665d6f3ee update library.LibrarySection._cleanSearchFilter method to pull categories from LibrarySection.filterFields() instead of using hardcoded ALLOWED_FILTERS or BOOLEAN_FILTERS. 2020-06-30 09:32:58 -04:00
blacktwin
9ec2399b21 add filterFields method to library.LibrarySection 2020-06-30 09:24:12 -04:00
blacktwin
9936ee553d create Field, Operator, and FieldType classes 2020-06-30 09:23:18 -04:00
blacktwin
d0943a369e add firstCharacterKey attribute to library.Sort class 2020-06-30 09:21:44 -04:00
blacktwin
4a49ca97b0 add _sorts method 2020-06-30 09:19:53 -04:00
blacktwin
e5d79c7518 add Sort class 2020-06-30 09:06:26 -04:00
blacktwin
c1cef679cc add firstCharacter method to library.LibrarySection 2020-06-30 09:00:50 -04:00
blacktwin
847d21f79d add FirstCharacter class 2020-06-30 08:59:30 -04:00
Jason Lawrence
4c8fef144e Fix ElementTree warnings 2020-06-29 17:31:05 -05:00
blacktwin
3746b4ecb5 removal of registerPlexObject as the only usage calls this class directly. 2020-06-29 13:39:48 -04:00
blacktwin
6829bb2759 add _filter method to library.LibrarySection
referencing #209
2020-06-22 15:44:48 -04:00
blacktwin
ea88be39a0 add Filter class to library
referencing #209
2020-06-22 15:44:46 -04:00
blacktwin
c988f393a7 library.Station docstring update. 2020-06-22 15:27:45 -04:00
blacktwin
ee9cb7dc85 add hubs method to library.LibrarySection 2020-06-22 15:04:33 -04:00
blacktwin
bd536db7ac add stations method to library.MusicSection 2020-06-22 15:03:28 -04:00
blacktwin
c665546185 create library.Station class for stations found in music libraries 2020-06-22 15:02:48 -04:00
blacktwin
38b863b8da correction for library.librarySection.defaultAdvanced method 2020-06-18 10:03:47 -04:00
Hellowlol
d7c215b119 Small change to the repr and add test. 2020-06-14 20:21:46 +02:00
blacktwin
881a4fc659 use utils.millisecondToHuman for media.Marker.__repr__ 2020-06-13 22:12:35 -04:00
blacktwin
3852ed52a7 create millisecondToHuman method in utils 2020-06-13 22:12:01 -04:00
blacktwin
faeee7d667 import timedelta to utils 2020-06-13 22:11:39 -04:00
blacktwin
9685b57ad2 importing base.PlexPartialObject and applying it to library.Collections
this will allow collections to use the base.PlexPartialObject.edit method
2020-06-12 14:14:09 -04:00
blacktwin
6dc19386c2 adding art attribute to video.Video
addressing #511
2020-06-12 13:22:15 -04:00
blacktwin
81dcd58618 add art attrib to library.Collection
addressing #511
2020-06-12 13:22:13 -04:00
blacktwin
59fcdb4080 add defaultAdvanced method to library.LibrarySection 2020-06-09 23:32:22 -04:00
blacktwin
7474e7d28e add editAdvanced method to library.LibrarySection
addressing #450
2020-06-09 23:25:23 -04:00
blacktwin
ffe07ac1c6 video.optimize method docstring update. 2020-06-09 15:58:08 -04:00
blacktwin
43b1bfb64b update video.optimize method to use new Locations attributes 2020-06-09 15:57:47 -04:00
blacktwin
ad55514be9 update library.LibrarySection locations attribute to use new Location class. 2020-06-09 15:56:59 -04:00
blacktwin
506a791260 create library.Location class 2020-06-09 15:56:21 -04:00
blacktwin
70dd6704be library EOF flake fix 2020-06-06 14:15:23 -04:00
blacktwin
615d702487 photo EOF flake fix 2020-06-06 14:14:38 -04:00
blacktwin
03c2ece89d audio EOF flake fix 2020-06-06 14:14:03 -04:00
blacktwin
78656ab2a4 update to library.Collection docstring 2020-06-06 14:01:16 -04:00
blacktwin
33955472c7 adding additional attributes to library.Collection class
thanks @jonnyWong16
2020-06-06 14:00:44 -04:00
blacktwin
db2a210f37 adding fields attribute to library.Collections
reordered attributes
docstring update
2020-06-05 15:43:05 -04:00
blacktwin
a12fd18e54 adding fields attribute to audio.Audio
docstring update
2020-06-05 15:42:22 -04:00
blacktwin
de47470a43 adding fields attribute to video.Video
docstring update
2020-06-05 15:42:03 -04:00
blacktwin
4644a33fb7 adding fields attribute to photo.Photo and photo.Photoalbum
docstring update
2020-06-05 15:41:49 -04:00
blacktwin
d0975a8a73 docstrings for new methods. 2020-06-05 14:20:39 -04:00
blacktwin
0974b1e2b1 _default docstring 2020-06-05 14:18:35 -04:00
blacktwin
0b31454c0f add _default method to Preferences class 2020-06-05 14:12:59 -04:00
blacktwin
2c256f89c2 add _initpath to Preferences atrributes 2020-06-05 14:12:30 -04:00
blacktwin
afe25d19ac create defaultAdvanced method
allows for defaulting all advanced settings
2020-06-05 13:48:34 -04:00
blacktwin
0dbdff4b03 create editAdvanced method
allow for editing a show's advanced settings using kwargs
2020-06-05 13:41:48 -04:00
blacktwin
1f396ca95a
remove field attribute
Addressing #504 

remove field attribute as it is no longer available.
adding `__repr__` to Marker class resulting in `<Marker:intro:139770:230481>`
2020-06-04 23:21:03 -04:00
Hellowlol
f2f6d8b9e7 forgot to bump 2020-06-02 21:12:57 +02:00
Steffen Fredriksen
b98d2e91e0
Merge pull request #498 from pkkid/intro_marker
intro_marker
2020-06-02 20:59:41 +02:00
Steffen Fredriksen
785a2f064b
Merge pull request #489 from jjlawren/timeline_do_not_subscribe
Remove 'timeline/subscribe' calls
2020-06-02 20:59:20 +02:00
blacktwin
1d8d76ef56
Merge branch 'master' into intro_marker 2020-05-27 21:48:41 -04:00
blacktwin
2d4a919a40 resolving conflict 2020-05-27 21:53:04 -04:00
blacktwin
558eafa44f no need for double bool 2020-05-27 12:26:54 -04:00
blacktwin
660a665366 only check for intro markers in case Plex decides to add different marker types in the future
thanks @jonnywong16
2020-05-27 12:15:56 -04:00
jjlawren
4a24d50036
Reduce timeout to expire Sonos resource cache (#500) 2020-05-27 09:36:55 -05:00
jjlawren
4193012bc2
Improve Sonos ID lookup (#496) 2020-05-26 15:09:39 -05:00
blacktwin
a2ef4a5564 create hasIntroMarker method to quickly identify if an episode has an intro marker 2020-05-24 22:57:02 -04:00
blacktwin
5e3dff4e32 update analyze docstring to include new intro video marker 2020-05-24 22:55:52 -04:00
blacktwin
8a744f85f4 correcting onDeck docstring 2020-05-24 22:24:32 -04:00
blacktwin
1cfc9869d1 create ondeck method for shows 2020-05-23 23:30:44 -04:00
blacktwin
ce3fcc9b9d update hubs method 2020-05-23 23:30:21 -04:00
blacktwin
81339cc3dc import library and create hubs method 2020-05-23 23:20:22 -04:00
blacktwin
6a69fe4810 create preferences method 2020-05-23 23:07:44 -04:00
blacktwin
4db38e6832 add _include to show
add _details_key to show
2020-05-23 23:07:21 -04:00
blacktwin
a771feac35 import settings 2020-05-23 23:06:05 -04:00
blacktwin
f6fcf95272 create Preferences class 2020-05-23 23:04:55 -04:00
blacktwin
65271c351d update episodes _include to include markers
add markers attrib to episode
2020-05-23 02:12:36 -04:00
blacktwin
61c0669905 create Marker class 2020-05-23 02:09:22 -04:00
Jason Lawrence
735e26f257 Sonos lookup fixes and tests 2020-05-15 08:45:46 -05:00
Jason Lawrence
275f4ba921 Revert change to default timeline argument 2020-05-13 16:36:30 -05:00
Hellowlol
a0c5eec9ee Delete compat.py
not needed for as py2 support is dropped.
2020-05-13 23:19:51 +03:00
Hellowlol
cf75bb9d14 add some f401 stop flake from failing 2020-05-12 23:32:58 +02:00
Hellowlol
940efc0013 first pass on compat. 2020-05-12 23:15:16 +02:00
Jason Lawrence
5fe5109806 Remove 'timeline/subscribe' calls 2020-05-12 13:48:47 -05:00
Hellowlol
a5ee061e7d bump 2020-05-12 00:57:57 +02:00
Hellowlol
f6e311f056 2nd attempt to fix title bug 2020-05-11 23:12:15 +02:00
Hellowlol
42c83aa084 Fix for library title search when special chars is used
fix flaky test.
2020-05-11 15:14:38 +02:00
Hellowlol
2df2a05f67 Update sonos.py 2020-05-11 14:54:12 +02:00
Jason Lawrence
fd0803686e Bump to 3.5.0 2020-05-10 21:27:04 -05:00
Steffen Fredriksen
6daaa85f18
Merge pull request #471 from jjlawren/sonos_controls
Allow control of Sonos speakers using Plex API
2020-05-10 14:31:16 +02:00
Steffen Fredriksen
226737807e
Merge pull request #472 from pkkid/matching_fix
matching_fix
2020-05-10 14:30:59 +02:00
blacktwin
430113d2b9 add key to initpath 2020-05-03 21:42:08 -04:00
Jason Lawrence
03c8946cbd Doc fix, black reformat 2020-05-02 00:12:28 -05:00
blacktwin
2af1452fed if agent is the only keyword then only add language and agent to params
fix for #140
2020-05-02 00:01:34 -04:00
blacktwin
608433bce2 making sure ?manual=1 is included in key 2020-05-01 22:53:28 -04:00
blacktwin
95e52b5cad error catch for zero results when using fixMatch(auto=True) 2020-05-01 22:51:28 -04:00
Steffen Fredriksen
7905ff0e58
Merge pull request #468 from pkkid/less_deps
reduce deps
2020-05-02 01:44:28 +03:00
Hellowlol
8ac2edb3f6 reduce deps 2020-05-02 01:29:26 +03:00
Steffen Fredriksen
337cb29956
Merge pull request #474 from pkkid/add_docs
Update toc.rst
2020-05-02 01:27:11 +03:00
Hellowlol
280c768547 Update gdm.py 2020-05-02 01:18:15 +03:00