def __init__(self, callback): self.mgr = callback self.doUtils = downloadutils.DownloadUtils().downloadUrl self.xbmcplayer = Player() self.playqueue = self.mgr.playqueue Monitor.__init__(self) log.info("Kodi monitor started.")
def __init__(self): self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils() self.logMsg("Kodi monitor started.", 1)
def GetPlexPlaylist(itemid, librarySectionUUID, mediatype='movie'): """ Returns raw API metadata XML dump for a playlist with e.g. trailers. """ trailerNumber = settings('trailerNumber') if not trailerNumber: trailerNumber = '3' url = "{server}/playQueues" args = { 'type': mediatype, 'uri': ('library://' + librarySectionUUID + '/item/%2Flibrary%2Fmetadata%2F' + itemid), 'includeChapters': '1', 'extrasPrefixCount': trailerNumber, 'shuffle': '0', 'repeat': '0' } xml = downloadutils.DownloadUtils().downloadUrl( url + '?' + urlencode(args), action_type="POST") try: xml[0].tag except (IndexError, TypeError, AttributeError): log.error("Error retrieving metadata for %s" % url) return None return xml
def watchlater(): """ Listing for plex.tv Watch Later section (if signed in to plex.tv) """ if window('plex_token') == '': log.error('No watch later - not signed in to plex.tv') return xbmcplugin.endOfDirectory(HANDLE, False) if window('plex_restricteduser') == 'true': log.error('No watch later - restricted user') return xbmcplugin.endOfDirectory(HANDLE, False) xml = downloadutils.DownloadUtils().downloadUrl( 'https://plex.tv/pms/playlists/queue/all', authenticate=False, headerOptions={'X-Plex-Token': window('plex_token')}) if xml in (None, 401): log.error('Could not download watch later list from plex.tv') return xbmcplugin.endOfDirectory(HANDLE, False) log.info('Displaying watch later plex.tv items') xbmcplugin.setContent(HANDLE, 'movies') for item in xml: __build_item(item) xbmcplugin.endOfDirectory( handle=HANDLE, cacheToDisc=settings('enableTextureCache') == 'true')
def SelectStreams(url, args): """ Does a PUT request to tell the PMS what audio and subtitle streams we have chosen. """ downloadutils.DownloadUtils().downloadUrl( url + '?' + urlencode(args), action_type='PUT')
def PMSHttpsEnabled(url): """ Returns True if the PMS can talk https, False otherwise. None if error occured, e.g. the connection timed out Call with e.g. url='192.168.0.1:32400' (NO http/https) This is done by GET /identity (returns an error if https is enabled and we are trying to use http) Prefers HTTPS over HTTP """ doUtils = downloadutils.DownloadUtils().downloadUrl res = doUtils('https://%s/identity' % url, authenticate=False, verifySSL=False) try: res.attrib except AttributeError: # Might have SSL deactivated. Try with http res = doUtils('http://%s/identity' % url, authenticate=False, verifySSL=False) try: res.attrib except AttributeError: log.error("Could not contact PMS %s" % url) return None else: # Received a valid XML. Server wants to talk HTTP return False else: # Received a valid XML. Server wants to talk HTTPS return True
def __init__(self): global log log = Logging(self.__class__.__name__).log self.addonId = clientinfo.ClientInfo().getAddonId() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.userClient = userclient.UserClient()
def __init__(self): self.__dict__ = self._shared_state self.addon = xbmcaddon.Addon() self.addonName = clientinfo.ClientInfo().getAddonName() self.doUtils = downloadutils.DownloadUtils() threading.Thread.__init__(self)
def __init__(self): self.__dict__ = self._shared_state self.clientInfo = clientinfo.ClientInfo() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.xbmcplayer = xbmc.Player() self.logMsg("Starting playback monitor.", 2)
def __init__(self): self.__dict__ = self._shared_state self.doutils = downloadutils.DownloadUtils() self.emby = embyserver.Read_EmbyServer() self.connectmanager = connectmanager.ConnectManager() threading.Thread.__init__(self)
def __init__(self, item): self.item = item self.clientInfo = clientinfo.ClientInfo() self.userid = window('emby_currUser') self.server = window('emby_server%s' % self.userid) self.doUtils = downloadutils.DownloadUtils().downloadUrl
def __init__(self): global log log = Logging(self.__class__.__name__).log self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils() log("Kodi monitor started.", 1)
def __init__(self): self.__dict__ = self._shared_state self.clientInfo = clientinfo.ClientInfo() self.doUtils = downloadutils.DownloadUtils().downloadUrl xbmc.Player.__init__(self) log.info("Started playback monitor.")
def __init__(self): self.artwork = artwork.Artwork() self.emby = embyserver.Read_EmbyServer() self.do_url = downloadutils.DownloadUtils().downloadUrl self.should_stop = should_stop self.kodi_version = int(xbmc.getInfoLabel('System.BuildVersion')[:2]) self.direct_path = settings('useDirectPaths') == "1" self.content_msg = settings('newContent') == "true"
def __init__(self): window = utils.window self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.userId = window('emby_currUser') self.server = window('emby_server%s' % self.userId)
def __init__(self): self.addon = xbmcaddon.Addon() self.__language__ = self.addon.getLocalizedString self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.addonId = self.clientInfo.getAddonId() self.doUtils = downloadutils.DownloadUtils() self.userClient = userclient.UserClient()
def __init__(self): self.__dict__ = self._shared_state self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.ws = wsc.WebSocket_Client() self.xbmcplayer = xbmc.Player() self.logMsg("Starting playback monitor.", 2)
def __init__(self): self.__dict__ = self._shared_state self.monitor = xbmc.Monitor() self.doutils = downloadutils.DownloadUtils() self.client_info = clientinfo.ClientInfo() self.device_id = self.client_info.get_device_id() self.library_sync = librarysync.LibrarySync() threading.Thread.__init__(self)
def __init__(self): self.__dict__ = self._shared_state self.clientInfo = clientinfo.ClientInfo() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.ws = wsc.WebSocketClient() self.xbmcplayer = xbmc.Player() log.debug("Starting playback monitor.") xbmc.Player.__init__(self)
def __init__(self): global log log = Logging(self.__class__.__name__).log self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.userId = window('emby_currUser') self.server = window('emby_server%s' % self.userId)
def get_PMS_settings(url, token): """ Retrieve the PMS' settings via <url>/:/ Call with url: scheme://ip:port """ return downloadutils.DownloadUtils().downloadUrl( '%s/:/prefs' % url, authenticate=False, verifySSL=False, headerOptions={'X-Plex-Token': token} if token else None)
def __init__(self, protocol, host, port, uuid, commandID, subMgr, RequestMgr): self.protocol = protocol or "http" self.host = host self.port = port or 32400 self.uuid = uuid or host self.commandID = int(commandID) or 0 self.navlocationsent = False self.age = 0 self.doUtils = downloadutils.DownloadUtils().downloadUrl self.subMgr = subMgr self.RequestMgr = RequestMgr
def __init__(self): global log log = Logging(self.__class__.__name__).log self.__dict__ = self._shared_state self.addon = xbmcaddon.Addon() self.addonName = clientinfo.ClientInfo().getAddonName() self.doUtils = downloadutils.DownloadUtils() threading.Thread.__init__(self)
def __init__(self): self.__dict__ = self._shared_state self.monitor = xbmc.Monitor() self.doUtils = downloadutils.DownloadUtils() self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.deviceId = self.clientInfo.getDeviceId() self.librarySync = librarysync.LibrarySync() threading.Thread.__init__(self)
def __init__(self): self.__dict__ = self._shared_state self.monitor = xbmc.Monitor() self.clientInfo = clientinfo.ClientInfo() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.user = userclient.UserClient() self.emby = embyserver.Read_EmbyServer() self.kodi_version = int(xbmc.getInfoLabel('System.BuildVersion')[:2]) threading.Thread.__init__(self)
def __init__(self, item): self.item = item self.API = api.API(self.item) self.doUtils = downloadutils.DownloadUtils().downloadUrl self.userid = window('emby_currUser') self.server = window('emby_server%s' % self.userid) self.artwork = artwork.Artwork() self.emby = embyserver.Read_EmbyServer() self.pl = playlist.Playlist()
def GetPlayQueue(playQueueID): """ Fetches the PMS playqueue with the playQueueID as an XML Returns None if something went wrong """ url = "{server}/playQueues/%s" % playQueueID args = {'Accept': 'application/xml'} xml = downloadutils.DownloadUtils().downloadUrl(url, headerOptions=args) try: xml.attrib['playQueueID'] except (AttributeError, KeyError): return None return xml
def __init__(self): global log log = Logging(self.__class__.__name__).log self.__dict__ = self._shared_state self.clientInfo = clientinfo.ClientInfo() self.addonName = self.clientInfo.getAddonName() self.doUtils = downloadutils.DownloadUtils().downloadUrl self.ws = wsc.WebSocket_Client() self.xbmcplayer = xbmc.Player() log("Starting playback monitor.", 2)
def BrowseChannels(itemid, folderid=None): _addon_id = int(sys.argv[1]) _addon_url = sys.argv[0] doUtils = downloadutils.DownloadUtils() art = artwork.Artwork() xbmcplugin.setContent(int(sys.argv[1]), 'files') if folderid: url = ( "{server}/emby/Channels/%s/Items?userid={UserId}&folderid=%s&format=json" % (itemid, folderid)) elif itemid == "0": # id 0 is the root channels folder url = "{server}/emby/Channels?{UserId}&format=json" else: url = "{server}/emby/Channels/%s/Items?UserId={UserId}&format=json" % itemid result = doUtils.downloadUrl(url) if result and result.get("Items"): for item in result.get("Items"): itemid = item['Id'] itemtype = item['Type'] li = createListItemFromEmbyItem(item, art, doUtils) isFolder = item.get('IsFolder', False) channelId = item.get('ChannelId', "") channelName = item.get('ChannelName', "") if itemtype == "Channel": path = "%s?id=%s&mode=channels" % (_addon_url, itemid) xbmcplugin.addDirectoryItem(handle=_addon_id, url=path, listitem=li, isFolder=True) elif isFolder: path = "%s?id=%s&mode=channelsfolder&folderid=%s" % ( _addon_url, channelId, itemid) xbmcplugin.addDirectoryItem(handle=_addon_id, url=path, listitem=li, isFolder=True) else: path = "%s?id=%s&mode=play" % (_addon_url, itemid) li.setProperty('IsPlayable', 'true') xbmcplugin.addDirectoryItem(handle=_addon_id, url=path, listitem=li) xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
def scrobble(ratingKey, state): """ Tells the PMS to set an item's watched state to state="watched" or state="unwatched" """ args = {'key': ratingKey, 'identifier': 'com.plexapp.plugins.library'} if state == "watched": url = "{server}/:/scrobble?" + urlencode(args) elif state == "unwatched": url = "{server}/:/unscrobble?" + urlencode(args) else: return downloadutils.DownloadUtils().downloadUrl(url) log.info("Toggled watched state for Plex item %s" % ratingKey)