def create_session(self, session_key, state): """ :type session_key: str :type state: str :rtype: WatchSession or None """ Log.Debug("Creating a WatchSession for the current media") video_section = PMS.get_video_session(session_key) if not video_section: return None player_section = video_section.findall("Player") if len(player_section): player_section = player_section[0] session = WatchSession.from_section( video_section, state, PMS.metadata(video_section.get("ratingKey")), PMS.client(player_section.get("machineIdentifier")), ) session.save() return session
def create_session(self, session_key, state): """ :type session_key: str :type state: str :rtype: WatchSession or None """ Log.Debug('Creating a WatchSession for the current media') video_section = PMS.get_video_session(session_key) if not video_section: return None player_section = video_section.findall('Player') if len(player_section): player_section = player_section[0] session = WatchSession.from_section( video_section, state, PlexMediaServer.metadata(video_section.get('ratingKey')), PlexMediaServer.client(player_section.get('machineIdentifier'))) session.save() return session
def create_session(self, session_key, state): """ :type session_key: str :type state: str :rtype: WatchSession or None """ Log.Debug('Creating a WatchSession for the current media') video_section = PMS.get_video_session(session_key) if not video_section: return None player_section = video_section.findall('Player') if len(player_section): player_section = player_section[0] session = WatchSession.from_section( video_section, state, PlexMediaServer.metadata(video_section.get('ratingKey')), PlexMediaServer.client(player_section.get('machineIdentifier')) ) session.save() return session
class WebSocketScrobbler(ScrobblerMethod): name = 'WebSocketScrobbler' def __init__(self): super(WebSocketScrobbler, self).__init__() EventManager.subscribe('notifications.playing', self.update) @classmethod def test(cls): if PlexMediaServer.get_sessions() is None: log.info( "Error while retrieving sessions, assuming WebSocket method isn't available" ) return False server_info = PlexMediaServer.get_info() if server_info is None: log.info('Error while retrieving server info for testing') return False multi_user = bool(server_info.get('multiuser', 0)) if not multi_user: log.info( "Server info indicates multi-user support isn't available, WebSocket method not available" ) return False return True def create_session(self, session_key, state): """ :type session_key: str :type state: str :rtype: WatchSession or None """ log.debug('Creating a WatchSession for the current media') skip = False info = PlexMediaServer.get_session(session_key) if not info: return None # Client player_section = info.findall('Player') if len(player_section): player_section = player_section[0] client = PlexMediaServer.get_client( player_section.get('machineIdentifier')) # Metadata metadata = None try: metadata = PlexMetadata.get(info.get('ratingKey')) if metadata: metadata = metadata.to_dict() except NotImplementedError, e: # metadata not supported (music, etc..) log.debug('%s, ignoring session' % e.message) skip = True session = WatchSession.from_section(info, state, metadata, client) session.skip = skip session.save() return session