Commit graph

2537 commits

Author SHA1 Message Date
JonnyWong16
654ed506f4
Also catch ValueError when converting timestamp to datetime (#1329) 2024-02-04 10:52:34 -08:00
JonnyWong16
e3d90a5945
Simplify building MediaPartStream objects (#1328)
* 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
2024-02-04 10:52:19 -08:00
JonnyWong16
b3ef1c22dd
Add warning for ambiguous library title (#1327) 2024-02-04 10:51:48 -08:00
Elan Ruusamäe
8bb9f5f213
Use 4k chunk size (powers of 2) for download (#1326) 2024-02-04 10:50:50 -08:00
ReenigneArcher
097b989fab
fix(scripts): offset butler tasks to reduce ci random failures (#1320)
* fix(scripts): offset butler tasks to reduce ci random failures

* Apply suggestions from code review

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

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-02-04 10:50:31 -08:00
JonnyWong16
768aa58c90
Adds 2FA code input to tools/plex-gettoken.py (#1319)
* Use getpass for password input

* Add 2FA code input
2024-02-04 10:49:55 -08:00
JonnyWong16
4780026a73
Release 4.15.7 2023-12-22 16:45:20 -08:00
dependabot[bot]
04f6034fa4
Bump actions/download-artifact from 3 to 4 (#1314)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:45:07 -08:00
dependabot[bot]
9538fc0bad
Bump actions/upload-artifact from 3 to 4 (#1315)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:44:54 -08:00
dependabot[bot]
dbe3f7127b
Bump github/codeql-action from 2 to 3 (#1313)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:23:21 -08:00
dependabot[bot]
202ca511ef
Bump actions/setup-python from 4 to 5 (#1312)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:23:00 -08:00
dependabot[bot]
db19b7b891
Bump websocket-client from 1.6.4 to 1.7.0 (#1311)
Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.6.4 to 1.7.0.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.6.4...v1.7.0)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:22:52 -08:00
dependabot[bot]
7fead16fa3
Bump sphinx-rtd-theme from 1.3.0 to 2.0.0 (#1309)
Bumps [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) from 1.3.0 to 2.0.0.
- [Changelog](https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst)
- [Commits](https://github.com/readthedocs/sphinx_rtd_theme/compare/1.3.0...2.0.0)

---
updated-dependencies:
- dependency-name: sphinx-rtd-theme
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 13:22:45 -08:00
JonnyWong16
d4426dab86
Add support for on-demand subtitles (#1305)
* 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
2023-12-22 13:13:04 -08:00
ReenigneArcher
b0ac5ea705
docs: update butler tasks info (#1310) 2023-12-22 12:49:53 -08:00
iDentitY4
189175150f
Fix subtitleLanguage attribute (#1308) 2023-12-22 12:49:44 -08:00
JonnyWong16
ca13bcaf45
Remove DeprecationWarning for watched methods (#1306)
* Remove deprecation warnings for watched

* Test alias watched methods
2023-12-22 12:48:56 -08:00
JonnyWong16
1c591f6438
Guard against None parentIndex (#1304)
https://github.com/pkkid/python-plexapi/pull/1251#discussion_r1394134558
2023-12-22 12:33:41 -08:00
JonnyWong16
f7522afd6b
Add lyricStreams() convenience method (#1303)
* Move videoStreams, audioStreams, lyricStreams to Playable

* Add lyricStreams to Playable

* Simplify returning list of streams

* Add test for track.lyricStreams()
2023-12-22 12:33:27 -08:00
JonnyWong16
46c20a598f
Fix building documentation (#1300) 2023-11-14 16:15:39 -08:00
ReenigneArcher
0708821566
test: fix test_audio_Audio_sonicallySimilar authenticated test (#1298)
* test: fix test_audio_Audio_sonicallySimilar authenticated test

* Update tests/test_audio.py

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

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-11-14 16:15:30 -08:00
JonnyWong16
c801268057
Release 4.15.6 2023-11-13 11:10:20 -08:00
JonnyWong16
3549902313
Fix flake8 #1295 (#1297) 2023-11-13 11:05:12 -08:00
Tom Niget
3653a156db
doc: fix documentation for BaseResource.provider (#1295) 2023-11-13 10:56:40 -08:00
ReenigneArcher
e0a425fdcb
feat: add PlexPartialObject.isLocked method (#1293)
Co-authored-by: JonnyWong16 <9099342+jonnywong16@users.noreply.github.com>
2023-11-13 10:56:30 -08:00
ReenigneArcher
70b126f477
style(typehints): replace string typehints (#1289)
* style(typehints): replace string typehints

* style: revert variable type hint removal
2023-11-13 10:48:04 -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
2f888dfcfb
Check edit tags is a list (#1287)
Libraries have a `collections()` method which has the same name as media's `collections` attribute.
2023-11-13 10:41:13 -08:00
ReenigneArcher
799e5c690b
tests: improve audio tests (#1294) 2023-11-13 10:35:36 -08:00
Dr.Blank
4924320715
Add support for 'group' and 'having' keys in smart filters (#1286)
* Add support for 'group' and 'having' keys in
SmartFilterMixin

- fixes #1285

* Add `group` and `having` fields to `additionalFields` list in `FilteringType` class

- This should allow passing the parsed filters back into `search()`.

Co-Authored-By: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-11-13 10:29:59 -08:00
JonnyWong16
556b4b3da4
Use edit mixins for Playlists (#1284)
* Use mixins to edit playlists

* Add titleSort attribute to Playlists

* Update Playlists edit tests

* Fix deprecation warning stacklevel

* Fix edit title for m3u playlist
2023-11-13 10:29:03 -08:00
dependabot[bot]
47f11f04eb
Bump pillow from 10.0.1 to 10.1.0 (#1270)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.1 to 10.1.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.0.1...10.1.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-11-05 19:57:03 -08:00
JonnyWong16
6ce6dfde39
Release 4.15.5 2023-11-05 16:50:32 -08:00
Dr.Blank
56a8df659d
Update algorithm for parsing smart filters (#1276)
* 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>
2023-11-05 16:23:57 -08:00
ReenigneArcher
c03d515ade
build(pypi): verify readme and add long_description_content_type (#1282) 2023-11-05 13:22:31 -08:00
dependabot[bot]
31bbb4fbfe
Bump websocket-client from 1.6.3 to 1.6.4 (#1268)
Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.6.3 to 1.6.4.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.6.3...v1.6.4)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-05 10:43:57 -08:00
JonnyWong16
253949c1fe
Add MyPlexAccount.ping() to refresh authentication token (#1271)
* Add `MyPlexAccount.ping()` to refresh auth token

* Test account ping
2023-11-02 21:24:46 -07:00
JonnyWong16
7f5cf76cbd
Return None for history source if media no longer exists (#1269) 2023-11-02 21:24:29 -07:00
Jas Blackthorne
a9e2406e25
Update documentation for collection.sortUpdate. (#1277)
Co-authored-by: Morgan Blackthorne <morgan@windsofstorm.net>
2023-11-02 21:24:05 -07:00
ReenigneArcher
8798a9e739
fix: explicitly set includeFiles (#1281)
Co-authored-by: JonnyWong16 <9099342+jonnywong16@users.noreply.github.com>
2023-10-31 16:30:53 -07:00
dependabot[bot]
a3af807c6b
Bump pytest from 7.4.2 to 7.4.3 (#1279) 2023-10-25 06:41:31 -05:00
dependabot[bot]
e44939c426
Bump pytest-mock from 3.11.1 to 3.12.0 (#1273) 2023-10-20 07:08:52 -05:00
ReenigneArcher
f8dc6f88f0
docs: fix readthedocs build (#1266) 2023-10-11 22:25:37 -07:00
Shanary
a257717614
Passing params for setSelectedSubtitles streams (#1265) 2023-10-11 22:25:17 -07:00
JonnyWong16
64eba5627e
Release 4.15.4 2023-10-03 21:22:31 -07:00
dependabot[bot]
98d9fbdee5
Bump pillow from 10.0.0 to 10.0.1 (#1254)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.0 to 10.0.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.0.0...10.0.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 21:20:59 -07:00
dependabot[bot]
c81dc169cd
Bump nick-fields/retry from 2.8.3 to 2.9.0 (#1259)
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2.8.3 to 2.9.0.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](https://github.com/nick-fields/retry/compare/v2.8.3...v2.9.0)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 21:20:49 -07:00
JonnyWong16
44fc13f2b5
Fix isLatest() and add canInstallUpdate() (#1263)
* Revert "Update isLatest() (#1253)"

This reverts commit b129fa3757.

* Add canInstallUpdate method

---------

Co-authored-by: Benjamin Oddou <85166574+BenjaminOddou@users.noreply.github.com>
2023-10-03 21:18:18 -07:00
ReenigneArcher
75fb265800
ci: adjust plexapi timeout (#1258) 2023-10-03 20:30:43 -07:00
Marc Mueller
dcedde1947
Fix datetime returning UTC (#1262)
* Replace datetime.utcfromtimestamp

* Update plexapi/utils.py

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

* Default using `fromtimestamp` and fallback to using `timedelta` from 0

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-10-03 20:30:32 -07:00