示例#1
0
    def startDeamon(self):
        printl("", self, "S")

        Thread.__init__(self)

        self.HandlerClass = RemoteHandler
        self.ServerClass = HTTPServer
        self.protocol = "HTTP/1.0"
        self.myIp = getMyIp()

        if not self.myIp:
            return False

        try:
            # this starts updatemechanism to show up as player in devices like ios
            self.client = PlexGdm()
            self.client.setClientDetails()
            self.client.start_registration()
        except:
            return False

        if self.client.check_client_registration():
            self.registered = True
            printl("Successfully registered", self, "D")
        else:
            self.registered = False
            printl("Unsuccessfully registered", self, "D")

        printl("", self, "C")
        return True
示例#2
0
    def keyBlue(self):
        printl("", self, "S")

        client = PlexGdm()
        client.setClientDetails()

        client.start_discovery()
        while not client.discovery_complete:
            print "Waiting for results"
            time.sleep(1)

        client.stop_discovery()
        serverList = client.getServerList()
        printl("serverList: " + str(serverList), self, "D")

        menu = []
        for server in serverList:
            printl("server: " + str(server), self, "D")
            menu.append((
                str(server.get("serverName")) + " (" +
                str(server.get("server")) + ":" + str(server.get("port")) +
                ")",
                server,
            ))

        printl("menu: " + str(menu), self, "D")
        self.session.openWithCallback(self.useSelectedServerData,
                                      ChoiceBox,
                                      title=_("Select server"),
                                      list=menu)

        printl("", self, "C")
示例#3
0
	def keyRed(self):
		printl("", self, "S")

		client = PlexGdm(debug=3)
		version = str(getVersion())
		gBoxType = getBoxInformation()
		clientBox = gBoxType[1]
		printl("clientBox: " + str(gBoxType), self, "D")
		client.clientDetails(clientBox, "DreamPlex Client", "3003", "DreamPlex", version)

		client.start_discovery()
		while not client.discovery_complete:
			print "Waiting for results"
			time.sleep(1)
		
		client.stop_discovery()
		serverList = client.getServerList()
		printl("serverList: " + str(serverList),self, "D")
		
		menu = []
		for server in serverList:
			printl("server: " + str(server), self, "D")
			menu.append((str(server.get("serverName")) + " (" + str(server.get("server")) + ":" + str(server.get("port")) + ")", server,))
			
		printl("menu: " + str(menu), self, "D")
		self.session.openWithCallback(self.useSelectedServerData, ChoiceBox, title=_("Select server"), list=menu)
		
		printl("", self, "C")
示例#4
0
	def prepareDeamon(self):
		printl("", self, "S")

		Thread.__init__(self)

		self.HandlerClass = RemoteHandler
		self.ServerClass = HTTPServer
		self.protocol = "HTTP/1.0"
		self.myIp = getMyIp()

		if not self.myIp:
			self.deamonState = False
			self.registered = False
			return

		try:
			# this starts updatemechanism to show up as player in devices like ios
			self.client = PlexGdm()
			self.client.setClientDetails()
			self.client.start_registration()
		except:
			self.deamonState = False
			return

		if self.client.check_client_registration():
			self.registered = True
			printl("Successfully registered", self, "D")
		else:
			self.registered = False
			printl("Unsuccessfully registered", self, "D")

		self.deamonState = True

		printl("", self, "C")
示例#5
0
    def keyRed(self):
        printl("", self, "S")

        client = PlexGdm(debug=3)
        version = str(getVersion())
        gBoxType = getBoxInformation()
        clientBox = gBoxType[1]
        printl("clientBox: " + str(gBoxType), self, "D")
        client.clientDetails(clientBox, "DreamPlex Client", "3003",
                             "DreamPlex", version)

        client.start_discovery()
        while not client.discovery_complete:
            print "Waiting for results"
            time.sleep(1)

        client.stop_discovery()
        serverList = client.getServerList()
        printl("serverList: " + str(serverList), self, "D")

        menu = []
        for server in serverList:
            printl("server: " + str(server), self, "D")
            menu.append((
                str(server.get("serverName")) + " (" +
                str(server.get("server")) + ":" + str(server.get("port")) +
                ")",
                server,
            ))

        printl("menu: " + str(menu), self, "D")
        self.session.openWithCallback(self.useSelectedServerData,
                                      ChoiceBox,
                                      title=_("Select server"),
                                      list=menu)

        printl("", self, "C")
示例#6
0
	def startDeamon(self):
		printl("", self, "S")

		t = Thread(target=runHttp)
		t.start()

		client = PlexGdm(debug=3)
		version = str(getVersion())
		gBoxType = getBoxInformation()
		clientBox = "8000"
		printl("clientBox: " + str(gBoxType), self, "D")
		client.clientDetails(clientBox, "192.168.45.80", "8000", "DreamPlex", version)
		client.start_registration()

		if client.check_client_registration():
			printl("Successfully registered", self, "D")
		else:
			printl("Unsuccessfully registered", self, "D")

		printl("", self, "C")
示例#7
0
	def keyBlue(self):
		printl("", self, "S")

		client = PlexGdm()
		client.setClientDetails()

		client.start_discovery()
		while not client.discovery_complete:
			print "Waiting for results"
			time.sleep(1)

		client.stop_discovery()
		serverList = client.getServerList()
		printl("serverList: " + str(serverList),self, "D")

		menu = []
		for server in serverList:
			printl("server: " + str(server), self, "D")
			menu.append((str(server.get("serverName")) + " (" + str(server.get("server")) + ":" + str(server.get("port")) + ")", server,))

		printl("menu: " + str(menu), self, "D")
		self.session.openWithCallback(self.useSelectedServerData, ChoiceBox, title=_("Select server"), list=menu)

		printl("", self, "C")
示例#8
0
    def startDeamon(self):
        printl("", self, "S")

        t = Thread(target=runHttp)
        t.start()

        client = PlexGdm(debug=3)
        version = str(getVersion())
        gBoxType = getBoxInformation()
        clientBox = "8000"
        printl("clientBox: " + str(gBoxType), self, "D")
        client.clientDetails(clientBox, "192.168.45.80", "8000", "DreamPlex", version)
        client.start_registration()

        if client.check_client_registration():
            printl("Successfully registered", self, "D")
        else:
            printl("Unsuccessfully registered", self, "D")

        printl("", self, "C")
示例#9
0
class HttpDeamon(Thread):

    session = None

    #===========================================================================
    #
    #===========================================================================
    def __init__(self):
        self.playerData = ThreadQueue()
        self.playerDataPump = ePythonMessagePump()

    #===========================================================================
    #
    #===========================================================================
    def getPlayerDataPump(self):
        printl("", self, "S")

        printl("", self, "C")
        return self.playerDataPump

    #===========================================================================
    #
    #===========================================================================
    def getPlayerDataQueue(self):
        printl("", self, "S")

        printl("", self, "C")
        return self.playerData

    #===========================================================================
    #
    #===========================================================================
    def setSession(self, session):
        self.session = session
        self.start()

    #===========================================================================
    #PROPERTIES
    #===========================================================================
    PlayerDataPump = property(getPlayerDataPump)
    PlayerData = property(getPlayerDataQueue)

    #===========================================================================
    #
    #===========================================================================
    def startDeamon(self):
        printl("", self, "S")

        Thread.__init__(self)

        self.HandlerClass = RemoteHandler
        self.ServerClass = HTTPServer
        self.protocol = "HTTP/1.0"
        self.myIp = getMyIp()

        if not self.myIp:
            return False

        try:
            # this starts updatemechanism to show up as player in devices like ios
            self.client = PlexGdm()
            self.client.setClientDetails()
            self.client.start_registration()
        except:
            return False

        if self.client.check_client_registration():
            self.registered = True
            printl("Successfully registered", self, "D")
        else:
            self.registered = False
            printl("Unsuccessfully registered", self, "D")

        printl("", self, "C")
        return True

    #===========================================================================
    #
    #===========================================================================
    def getDeamonState(self):
        printl("", self, "S")

        printl("", self, "C")
        return self.registered, self.remoteListenerInformation

    #===========================================================================
    #
    #===========================================================================
    def stopRemoteDeamon(self):
        printl("", self, "S")

        self.client.stop_all()
        self.httpd.shutdown()

        printl("", self, "C")

    #===========================================================================
    #
    #===========================================================================
    #def runHttp(session, playerCallback, HandlerClass = MyHandler,ServerClass = HTTPServer, protocol="HTTP/1.0"):
    def run(self):
        printl("", __name__, "S")
        server_address = ("", config.plugins.dreamplex.remotePort.value)

        self.HandlerClass.protocol_version = self.protocol
        self.HandlerClass.session = self.session
        self.HandlerClass.playerCallback = self.nowDoIt
        self.httpd = self.ServerClass(server_address, self.HandlerClass)

        sa = self.httpd.socket.getsockname()

        self.remoteListenerInformation = "Serving HTTP on " + str(
            sa[0]) + " port " + str(sa[1])

        printl(self.remoteListenerInformation, __name__, "D")
        self.httpd.serve_forever()

        printl("", __name__, "C")

    #===========================================================================
    #
    #===========================================================================
    def nowDoIt(self, data):

        self.playerData.push((data, ))
        self.playerDataPump.send(0)
示例#10
0
class HttpDeamon(Thread):

	session = None
	httpd = None
	deamonState = None

	#===========================================================================
	#
	#===========================================================================
	def __init__(self):
		self.playerData = ThreadQueue()
		self.playerDataPump = ePythonMessagePump()
		self.subMgr = SubscriptionManager()

	#===========================================================================
	#
	#===========================================================================
	def getPlayerDataPump(self):
		printl("", self, "S")

		printl("", self, "C")
		return self.playerDataPump

	#===========================================================================
	#
	#===========================================================================
	def getPlayerDataQueue(self):
		printl("", self, "S")

		printl("", self, "C")
		return self.playerData

	#===========================================================================
	#
	#===========================================================================
	def setSession(self, session):
		self.session = session
		self.subMgr.session = session
		self.start()

	#===========================================================================
	#PROPERTIES
	#===========================================================================
	PlayerDataPump = property(getPlayerDataPump)
	PlayerData = property(getPlayerDataQueue)

	#===========================================================================
	#
	#===========================================================================
	def notifySubscribers(self, players):
		self.subMgr.notify(players)

	#===========================================================================
	#
	#===========================================================================
	def addSubscriber(self, protocol, host, port, uuid, commandID):
		self.subMgr.addSubscriber(protocol, host, port, uuid, commandID)

	#===========================================================================
	#
	#===========================================================================
	def getSubscribersList(self):
		return self.subMgr.getSubscribersList()

	#===========================================================================
	#
	#===========================================================================
	def removeSubscriber(self, uuid):
		self.subMgr.removeSubscriber(uuid)

	#===========================================================================
	#
	#===========================================================================
	def updateCommandID(self, uuid, commandID):
		self.subMgr.updateCommandID(uuid, commandID)

	#===========================================================================
	#
	#===========================================================================
	def prepareDeamon(self):
		printl("", self, "S")

		Thread.__init__(self)

		self.HandlerClass = RemoteHandler
		self.ServerClass = HTTPServer
		self.protocol = "HTTP/1.0"
		self.myIp = getMyIp()

		if not self.myIp:
			self.deamonState = False
			self.registered = False
			return

		try:
			# this starts updatemechanism to show up as player in devices like ios
			self.client = PlexGdm()
			self.client.setClientDetails()
			self.client.start_registration()
		except:
			self.deamonState = False
			return

		if self.client.check_client_registration():
			self.registered = True
			printl("Successfully registered", self, "D")
		else:
			self.registered = False
			printl("Unsuccessfully registered", self, "D")

		self.deamonState = True

		printl("", self, "C")

	#===========================================================================
	#
	#===========================================================================
	def getDeamonState(self):
		printl("", self, "S")

		printl("", self, "C")
		return self.registered, self.deamonState

	#===========================================================================
	#
	#===========================================================================
	def stopRemoteDeamon(self):
		printl("", self, "S")

		self.client.stop_all()

		self.httpd.shutdown()

		printl("", self, "C")

	#===========================================================================
	#
	#===========================================================================
	#def runHttp(session, playerCallback, HandlerClass = MyHandler,ServerClass = HTTPServer, protocol="HTTP/1.0"):
	def run(self):
		printl("", __name__, "S")
		server_address = ("", config.plugins.dreamplex.remotePort.value)

		self.HandlerClass.protocol_version = self.protocol
		self.HandlerClass.session = self.session
		self.HandlerClass.playerCallback = self.nowDoIt
		self.httpd = self.ServerClass(server_address, self.HandlerClass)

		sa = self.httpd.socket.getsockname()

		self.remoteListenerInformation = "Serving HTTP on " + str(sa[0]) + " port " + str(sa[1])

		printl(self.remoteListenerInformation, __name__, "D")
		self.httpd.serve_forever()

		printl("", __name__, "C")

	#===========================================================================
	#
	#===========================================================================
	def nowDoIt(self, data):
		printl("", __name__, "S")

		self.playerData.push((data,))
		self.playerDataPump.send(0)

		printl("", __name__, "C")