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)
def __init__(self): self.player = player.Player() self.device_id = get_device_id() self.listener = Listener(self) self.listener.start() xbmc.Monitor.__init__(self)
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)
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)
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})