def Autostart(reason, session=None, **kwargs): if reason == 0: prepareEnvironment() getUUID() else: config.plugins.dreamplex.entriescount.save() config.plugins.dreamplex.Entries.save() config.plugins.dreamplex.save() configfile.save() if config.plugins.dreamplex.remoteAgent.value and HttpDeamonStarted: HttpDeamonThread.stopRemoteDeamon()
def getTimelineXML(self, playerid, ptype): if playerid > 0: #info = self.getPlayerProperties(playerid) # save this info off so the server update can use it too #self.playerprops[playerid] = info; state = "playing" time = self.progressFromEnigma2 else: state = "stopped" time = 0 ret = "\r\n"+'<Timeline location="%s" state="%s" time="%s" type="%s"' % (self.mainlocation, state, time, ptype) if playerid > 0: #serv = {}#getServerByHost(self.server) ret += ' duration="%s"' % self.durationFromEnigma2 ret += ' seekRange="0-%s"' % self.progressFromEnigma2 ret += ' controllable="%s"' % self.controllable() ret += ' machineIdentifier="%s"' % getUUID() #serv.get('uuid', "") ret += ' protocol="%s"' % self.protocol ret += ' address="%s"' % self.server ret += ' port="%s"' % self.port ret += ' guid="%s"' % 11111 #info['guid'] ret += ' containerKey="%s"' % (self.lastkey or "/library/metadata/900000") ret += ' key="%s"' % (self.lastkey or "/library/metadata/900000") m = re.search(r'(\d+)$', self.lastkey) if m: ret += ' ratingKey="%s"' % m.group() ret += ' volume="%s"' % 100 ret += ' shuffle="%s"' % 0 ret += '/>' return ret
def getTimelineXML(self, playerid, ptype): if playerid > 0: state = self.playerStateFromEnigma2 time = self.progressFromEnigma2 else: state = "stopped" time = 0 ret = "\r\n" + '<Timeline location="%s" state="%s" time="%s" type="%s"' % ( self.mainlocation, state, time, ptype, ) if playerid > 0: ret += ' duration="%s"' % self.durationFromEnigma2 ret += ' seekRange="0-%s"' % self.progressFromEnigma2 ret += ' controllable="%s"' % self.controllable() ret += ' machineIdentifier="%s"' % getUUID() # serv.get('uuid', "") ret += ' protocol="%s"' % self.protocol ret += ' address="%s"' % self.server ret += ' port="%s"' % self.port ret += ' guid="%s"' % 11111 # info['guid'] ret += ' containerKey="%s"' % (self.lastkey or "/library/metadata/900000") ret += ' key="%s"' % (self.lastkey or "/library/metadata/900000") m = re.search(r"(\d+)$", self.lastkey) if m: ret += ' ratingKey="%s"' % m.group() ret += ' volume="%s"' % 100 ret += ' shuffle="%s"' % 0 ret += "/>" return ret
def getTimelineXML(self, playerid, ptype): if playerid > 0: state = self.playerStateFromEnigma2 time = self.progressFromEnigma2 else: state = "stopped" time = 0 ret = "\r\n" + '<Timeline location="%s" state="%s" time="%s" type="%s"' % ( self.mainlocation, state, time, ptype) if playerid > 0: ret += ' duration="%s"' % self.durationFromEnigma2 ret += ' seekRange="0-%s"' % self.progressFromEnigma2 ret += ' controllable="%s"' % self.controllable() ret += ' machineIdentifier="%s"' % getUUID() #serv.get('uuid', "") ret += ' protocol="%s"' % self.protocol ret += ' address="%s"' % self.server ret += ' port="%s"' % self.port ret += ' guid="%s"' % 11111 #info['guid'] ret += ' containerKey="%s"' % (self.lastkey or "/library/metadata/900000") ret += ' key="%s"' % (self.lastkey or "/library/metadata/900000") m = re.search(r'(\d+)$', self.lastkey) if m: ret += ' ratingKey="%s"' % m.group() ret += ' volume="%s"' % 100 ret += ' shuffle="%s"' % 0 ret += '/>' return ret
def getResourceXml(self): printl("", self, "S") xml = "<MediaContainer><Player protocolCapabilities='playback, navigation' product='" + getMyIp( ) + "' platformVersion='" + getVersion( ) + "' platform='Enigma2' machineIdentifier='" + getUUID( ) + "' title='" + config.plugins.dreamplex.boxName.value + "' protocolVersion='1' deviceClass='stb'/></MediaContainer>" printl("", self, "C") return xml
def setAccessControlHeaders(self): printl("", self, "S") self.send_header('X-Plex-Client-Identifier', getUUID()) self.send_header('Access-Control-Max-Age', '1209600') self.send_header('Access-Control-Allow-Credentials', 'true') self.send_header('Access-Control-Allow-Origin', '*') self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS') self.send_header("Access-Control-Allow-Headers", "x-plex-client-identifier,x-plex-device,x-plex-device-name,x-plex-platform,x-plex-platform-version,x-plex-product,x-plex-target-client-identifier,x-plex-username,x-plex-version") printl("", self, "S")
def setClientDetails(self): printl("", self, "S") gBoxType = getBoxInformation() self.client_id = str(getUUID()) self.client_data = "Content-Type: plex/media-player\n" self.client_data += "Resource-Identifier: %s\n" % self.client_id self.client_data += "Name: %s\n" % config.plugins.dreamplex.boxName.value self.client_data += "Port: %s\n" % config.plugins.dreamplex.remotePort.value self.client_data += "Product: %s\n" % gBoxType[1] + " (" + str(getMyIp()) +")" self.client_data += "Version: %s\n" % str(getVersion()) self.client_data += "Protocol: plex\n" self.client_data += "Protocol-Version: 1\n" self.client_data += "Protocol-Capabilities: playback, navigation\n" self.client_data += "Device-Class: stb\n" printl("", self, "C")
def setClientDetails(self): printl("", self, "S") gBoxType = getBoxInformation() self.client_id = str(getUUID()) self.client_data = "Content-Type: plex/media-player\n" self.client_data += "Resource-Identifier: %s\n" % self.client_id self.client_data += "Name: %s\n" % config.plugins.dreamplex.boxName.value self.client_data += "Port: %s\n" % config.plugins.dreamplex.remotePort.value self.client_data += "Product: %s\n" % gBoxType[1] + " (" + str( getMyIp()) + ")" self.client_data += "Version: %s\n" % str(getVersion()) self.client_data += "Protocol: plex\n" self.client_data += "Protocol-Version: 1\n" self.client_data += "Protocol-Capabilities: playback, navigation\n" self.client_data += "Device-Class: stb\n" printl("", self, "C")
def getPlexHeaders(): printl("", "getPlexHeaders", "S") plexHeader = { "Content-type": "application/x-www-form-urlencoded", "X-Plex-Version": getVersion(), "X-Plex-Client-Identifier": getUUID(), "X-Plex-Provides": "player", "X-Plex-Product": "DreamPlex", "X-Plex-Device-Name": config.plugins.dreamplex.boxName.value, "X-Plex-Platform": "Enigma2", "X-Plex-Model": "Enigma2", "X-Plex-Device": "stb", } # if settings['myplex_user']: # plexHeader["X-Plex-Username"] = settings['myplex_user'] printl("", "getPlexHeaders", "C") return plexHeader
def getResourceXml(self): printl("", self, "S") xml = "<MediaContainer><Player protocolCapabilities='playback, navigation' product='"+ getMyIp() +"' platformVersion='"+ getVersion() +"' platform='Enigma2' machineIdentifier='"+ getUUID() +"' title='"+ config.plugins.dreamplex.boxName.value +"' protocolVersion='1' deviceClass='stb'/></MediaContainer>" printl("", self, "C") return xml