def __init__(self, coherence, tube_device,external_address): log.Loggable.__init__(self) self.device = tube_device self.coherence = coherence self.external_address = external_address self.uuid = self.device.get_id().split('-') self.uuid[1] = 'tube' self.uuid = '-'.join(self.uuid) self.friendly_name = self.device.get_friendly_name() self.device_type = self.device.get_friendly_device_type() self.version = int(self.device.get_device_type_version()) self._services = [] self._devices = [] self.icons = [] self.info("uuid: %s, name: %r, device type: %r, version: %r", self.uuid, self.friendly_name, self.device_type, self.version) """ create the http entrypoint """ self.web_resource = DeviceHttpRoot(self) self.coherence.add_web_resource( str(self.uuid)[5:], self.web_resource) """ create the Service proxy(s) """ for service in self.device.services: self.debug("Proxying service %r", service) new_service = TubeServiceProxy(service, self) self._services.append(new_service) """ create a device description xml file(s) """ version = self.version while version > 0: self.web_resource.putChild( 'description-%d.xml' % version, RootDeviceXML( self.coherence.hostname, str(self.uuid), self.coherence.urlbase, device_type=self.device_type, version=version, friendly_name=self.friendly_name, model_description='Coherence UPnP %s' % self.device_type, model_name='Coherence UPnP %s' % self.device_type, services=self._services, devices=self._devices, icons=self.icons)) version -= 1 """ and register with SSDP server """ self.register()
def __init__(self, coherence, tube_device, external_address): log.LogAble.__init__(self) self.device = tube_device self.coherence = coherence self.external_address = external_address self.uuid = self.device.get_id().split('-') self.uuid[1] = 'tube' self.uuid = '-'.join(self.uuid) self.friendly_name = self.device.get_friendly_name() self.device_type = self.device.get_friendly_device_type() self.version = int(self.device.get_device_type_version()) self._services = [] self._devices = [] self.icons = [] self.info(f'uuid: {self.uuid}, name: {self.friendly_name}, ' + f'device type: {self.device_type}, version: {self.version}') ''' create the http entrypoint ''' self.web_resource = DeviceHttpRoot(self) self.coherence.add_web_resource(str(self.uuid)[5:], self.web_resource) ''' create the Service proxy(s) ''' for device_service in self.device.services: self.debug(f'Proxying service {device_service}') new_service = TubeServiceProxy(device_service, self) self._services.append(new_service) ''' create a device description xml file(s) ''' version = self.version while version > 0: self.web_resource.putChild( f'description-{version:d}.xml', RootDeviceXML( self.coherence.hostname, str(self.uuid), self.coherence.urlbase, device_type=self.device_type, version=version, friendly_name=self.friendly_name, # model_description=f'Coherence UPnP {self.device_type}', # model_name=f'Coherence UPnP {self.device_type}', services=self._services, devices=self._devices, icons=self.icons, ), ) version -= 1 ''' and register with SSDP server ''' self.register()
def init_complete(self, backend): self.web_resource = DeviceHttpRoot(self) self.coherence.add_web_resource(str(self.uuid)[5:], self.web_resource) transport = "http" if config.plugins.Webinterface.http.enabled.value else "https" port = config.plugins.Webinterface.http.port.value if not config.plugins.Webinterface.http.enabled.value: port = config.plugins.Webinterface.https.port.value presentation_url = "%s://%s" % (transport, self.coherence.hostname) if (transport == "http" and port != 80) or (transport == "https" and port != 443): presentation_url = "%s:%s" % (presentation_url, port) self.web_resource.putChild( 'description-%d.xml' % self.version, RootDeviceXML( self.coherence.hostname, str(self.uuid), self.coherence.urlbase, device_type=self.device_type, device_uri_base=ManagedControlPoint.URI_BASE_DREAMBOX, version=self.version, friendly_name=self.device_name, services=[], devices=[], icons=self.icons, manufacturer='dreambox', manufacturer_url='http://www.dreambox.de', model_description=self.model_name, model_name=self.model_name, model_number=self.device_name, model_url='http://www.dreambox.de', presentation_url=presentation_url)) self.register() self.warning("%s %s (%s) activated with id %s" % (self.device_type, self.model_name, self.backend, str(self.uuid)[5:]))