Commit graph

1523 commits

Author SHA1 Message Date
Jason Lawrence
576dc21992 Handle empty datetimes in tests 2020-10-08 15:15:43 -05: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
01239046c7 cleaning up test_settings.test_settings_get test
py2 support has been dropped. returning str instead of bytes now due to 5045ddc
2020-09-28 13:58:31 -04: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
24901302d7
New bootstrap music scanner (#571)
* Use new Plex Music metadata scanner in tests

* Update tests to match Plex Music scanner metadata

* More tweaks to audio metadata matching

* Another tweak
2020-09-16 17:58:36 -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
jjlawren
fc54f7fe06
Add guards for missing thumbs in tests (#548) 2020-08-07 16:57:04 -05:00
jjlawren
fe3907e770
Fix timestamp assertion in tests (#547) 2020-08-07 15:47:46 -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
82df456f7a
Merge pull request #526 from andy-maier/andy/add-python-versions
Fixes #525: Added package metadata for supported Python versions
2020-08-02 16:12:28 +02:00
Steffen Fredriksen
74dff2791d
Merge branch 'master' into andy/add-python-versions 2020-08-02 16:12:17 +02: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
brooss
5239bc522c
Update README.rst (#538)
Fix README typo
2020-08-01 06:57:34 -05:00
blacktwin
614108fb63 create allSubfolders method for library.Folder class 2020-07-30 10:33:58 -04:00
blacktwin
620056a234 update test_video_Show_editAdvanced_default to use 1 str/text and 1 int/int based change 2020-07-28 11:18:14 -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
337ad9d88c correct assertion for default and value comparision. 2020-07-27 15:54:54 -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
Steffen Fredriksen
65fa780383
Merge pull request #520 from jjlawren/fix_elementtree_warnings
Fix ElementTree warnings
2020-07-24 12:01:02 +02:00
Steffen Fredriksen
6d82abae1c
Merge pull request #528 from andy-maier/andy/add-license-to-package
Fixes #527: Added BSD license information to package metadata
2020-07-24 12:00:04 +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
Andreas Maier
ad18a4500c Added fallback to distutils if setuptools is not installed
Signed-off-by: Andreas Maier <andreas.r.maier@gmx.de>
2020-07-12 16:24:05 +02:00
Andreas Maier
4b2e38d9eb Fixes #527: Added BSD license information to package metadata
Details:

* WHile Github correctly detects the BSD license from LICENSE.txt, Pypi does
  not and needs either a Trove classifier or the license argument specified
  in setup(). This change adds that the package supports the BSD license as
  a classifier, following the recommendation in
  https://packaging.python.org/guides/distributing-packages-using-setuptools/#license

Signed-off-by: Andreas Maier <andreas.r.maier@gmx.de>
2020-07-12 16:00:41 +02:00
Andreas Maier
fae666a757 Fixes #525: Added package metadata for supported Python versions
Details:

* This change adds package metadata to indicate that the current
  version of PlexAPI only supports Python 3. Because Python 3.5 is
  the lowest Python version supported by the PSF, the minimum
  Python version indicated in the package metadata is 3.5.
  (as per the python_requires argument of setup()).

* Added Trove classifiers for OS independency and for Python versions,
  although Python is only stated very generally as Python 3,
  in order to avoid maintenance effort when new Python 3.x versions
  will be released in the future.

* Using the python_requires argument of setup() required using
  setuptools instead of distutils. Distutils is pretty old stuff
  anyway and should not be used anymore.
  Setuptools is automatically part of any Python 3.x environment
  these days, including virtual Python environments.
  For details on distutils vs setuptools, see for example
  https://packaging.python.org/guides/tool-recommendations/#packaging-tool-recommendations

Signed-off-by: Andreas Maier <andreas.r.maier@gmx.de>
2020-07-12 15:42:31 +02:00
blacktwin
83c4e64ed6 add library.Collection._preferences() method 2020-07-02 14:40:28 -04:00