You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.2 KiB
33 lines
1.2 KiB
6 years ago
|
from plex.objects.core.base import Descriptor, Property, DescriptorMixin
|
||
|
from plex.objects.player import Player
|
||
|
from plex.objects.transcode_session import TranscodeSession
|
||
|
from plex.objects.user import User
|
||
|
|
||
|
|
||
|
class SessionMixin(DescriptorMixin):
|
||
|
session = Property(resolver=lambda: SessionMixin.construct_session)
|
||
|
|
||
|
@staticmethod
|
||
|
def construct_session(client, node):
|
||
|
return Session.construct(client, node, child=True)
|
||
|
|
||
|
|
||
|
class Session(Descriptor):
|
||
|
key = Property('sessionKey', int)
|
||
|
|
||
|
user = Property(resolver=lambda: Session.construct_user)
|
||
|
player = Property(resolver=lambda: Session.construct_player)
|
||
|
transcode_session = Property(resolver=lambda: Session.construct_transcode_session)
|
||
|
|
||
|
@classmethod
|
||
|
def construct_user(cls, client, node):
|
||
|
return User.construct(client, cls.helpers.find(node, 'User'), child=True)
|
||
|
|
||
|
@classmethod
|
||
|
def construct_player(cls, client, node):
|
||
|
return Player.construct(client, cls.helpers.find(node, 'Player'), child=True)
|
||
|
|
||
|
@classmethod
|
||
|
def construct_transcode_session(cls, client, node):
|
||
|
return TranscodeSession.construct(client, cls.helpers.find(node, 'TranscodeSession'), child=True)
|