Merge pull request #386 from pkkid/video_exists

add exists function
This commit is contained in:
Steffen Fredriksen 2019-10-06 21:19:31 +02:00 committed by GitHub
commit e6548649c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View file

@ -85,6 +85,8 @@ class MediaPart(PlexObject):
key (str): Key used to access this media part (ex: /library/parts/46618/1389985872/file.avi).
size (int): Size of this file in bytes (ex: 733884416).
streams (list<:class:`~plexapi.media.MediaPartStream`>): List of streams in this media part.
exists (bool): Determine if file exists
accessible (bool): Determine if file is accessible
"""
TAG = 'Part'
@ -104,6 +106,8 @@ class MediaPart(PlexObject):
self.syncState = data.attrib.get('syncState')
self.videoProfile = data.attrib.get('videoProfile')
self.streams = self._buildStreams(data)
self.exists = cast(bool, data.attrib.get('exists'))
self.accessible = cast(bool, data.attrib.get('accessible'))
def _buildStreams(self, data):
streams = []

View file

@ -215,6 +215,8 @@ def test_video_Movie_attrs(movies):
assert len(part.key) >= 10
assert part._server._baseurl == utils.SERVER_BASEURL
assert utils.is_int(part.size, gte=1000000)
assert part.exists
assert part.accessible
# Stream 1
stream1 = part.streams[0]
assert stream1.bitDepth in (8, None)
@ -506,6 +508,8 @@ def test_video_Episode_attrs(episode):
assert len(part.key) >= 10
assert part._server._baseurl == utils.SERVER_BASEURL
assert utils.is_int(part.size, gte=18184197)
assert part.exists
assert part.accessible
def test_video_Season(show):
@ -614,3 +618,17 @@ def test_that_reload_return_the_same_object(plex):
episode_section_get_key = episode_section_get.key
assert episode_library_search_key == episode_library_search.reload().key == episode_search_key == episode_search.reload().key == episode_section_get_key == episode_section_get.reload().key # noqa
def test_video_exists_accessible(movie, episode):
assert movie.media[0].parts[0].exists is None
assert movie.media[0].parts[0].accessible is None
movie.reload()
assert movie.media[0].parts[0].exists is True
assert movie.media[0].parts[0].accessible is True
assert episode.media[0].parts[0].exists is None
assert episode.media[0].parts[0].accessible is None
episode.reload()
assert episode.media[0].parts[0].exists is True
assert episode.media[0].parts[0].accessible is True