示例#1
0
def set_properties(item, method, server_id=None):

    ''' Set all properties for playback detection.
    '''
    info = item.get('PlaybackInfo') or {}

    current = window('jellyfin_play.json') or []
    current.append({
        'Type': item['Type'],
        'Id': item['Id'],
        'Path': info['Path'],
        'PlayMethod': method,
        'PlayOption': 'Addon' if info.get('PlaySessionId') else 'Native',
        'MediaSourceId': info.get('MediaSourceId', item['Id']),
        'Runtime': item.get('RunTimeTicks'),
        'PlaySessionId': info.get('PlaySessionId', str(uuid4()).replace("-", "")),
        'ServerId': server_id,
        'DeviceId': client.get_device_id(),
        'SubsMapping': info.get('Subtitles'),
        'AudioStreamIndex': info.get('AudioStreamIndex'),
        'SubtitleStreamIndex': info.get('SubtitleStreamIndex'),
        'CurrentPosition': info.get('CurrentPosition'),
        'CurrentEpisode': info.get('CurrentEpisode')
    })

    window('jellyfin_play.json', current)
示例#2
0
    def __init__(self):

        self.player = player.Player()
        self.device_id = get_device_id()
        self.listener = Listener(self)
        self.listener.start()
        xbmc.Monitor.__init__(self)
示例#3
0
    def __init__(self):

        self.device_id = get_device_id()
        self.player = objects.player.Player(monitor=self)
        self.listener = Listener(monitor=self)
        self.listener.start()

        self.workers_threads = []
        self.queue = Queue.Queue()

        xbmc.Monitor.__init__(self)
示例#4
0
    def __init__(self):

        self.player = player.Player()
        self.device_id = get_device_id()
        self.listener = Listener(self)
        self.listener.start()
        self.webservice = WebService()
        self.webservice.start()

        self.workers_threads = []
        self.queue = Queue.Queue()

        xbmc.Monitor.__init__(self)
示例#5
0
def add_user(api_client):
    ''' Add or remove users from the default server session.
    '''
    if not window('jellyfin_online.bool'):
        return

    session = api_client.get_device(client.get_device_id())
    users = api_client.get_users()
    current = session[0]['AdditionalUsers']

    result = dialog("select", translate(33061),
                    [translate(33062), translate(33063)]
                    if current else [translate(33062)])

    if result < 0:
        return

    if not result:  # Add user
        eligible = [
            x for x in users if x['Id'] not in
            [current_user['UserId'] for current_user in current]
        ]
        resp = dialog("select", translate(33064),
                      [x['Name'] for x in eligible])

        if resp < 0:
            return

        user = eligible[resp]
        event('AddUser', {'Id': user['Id'], 'Add': True})
    else:  # Remove user
        resp = dialog("select", translate(33064),
                      [x['UserName'] for x in current])

        if resp < 0:
            return

        user = current[resp]
        event('AddUser', {'Id': user['UserId'], 'Add': False})