fix more things
This commit is contained in:
parent
dd635a5b7f
commit
b32635af03
3 changed files with 29 additions and 10 deletions
|
@ -91,5 +91,5 @@ class Gateway(object):
|
|||
|
||||
def get_service(self, service_type):
|
||||
for service in self._device.services:
|
||||
if service.service_type == service_type:
|
||||
if service.service_type.lower() == service_type.lower():
|
||||
return service
|
||||
|
|
|
@ -4,6 +4,7 @@ from txupnp.util import get_lan_info
|
|||
from txupnp.ssdp import SSDPFactory
|
||||
from txupnp.scpd import SCPDCommandRunner
|
||||
from txupnp.gateway import Gateway
|
||||
from txupnp.fault import UPnPError
|
||||
from txupnp.constants import GATEWAY_SCHEMA
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -42,8 +43,10 @@ class SOAPServiceManager(object):
|
|||
self._command_runners = urn
|
||||
|
||||
def get_runner(self):
|
||||
if self._selected_runner and self._command_runners and self._selected_runner not in self._command_runners:
|
||||
self._selected_runner = self._command_runners.keys()[0]
|
||||
if self._command_runners and not self._selected_runner in self._command_runners:
|
||||
self._selected_runner = list(self._command_runners.keys())[0]
|
||||
if not self._command_runners:
|
||||
raise UPnPError("not devices found")
|
||||
return self._command_runners[self._selected_runner]
|
||||
|
||||
def get_available_runners(self):
|
||||
|
|
|
@ -9,13 +9,29 @@ log = logging.getLogger(__name__)
|
|||
|
||||
|
||||
def parse_http_fields(content_lines):
|
||||
return {
|
||||
(k.lower().rstrip(":".encode()).replace("-".encode(), "_".encode())).decode(): v.decode()
|
||||
for k, v in {
|
||||
l.split(": ".encode())[0]: "".encode().join(l.split(": ".encode())[1:])
|
||||
for l in content_lines
|
||||
}.items() if k
|
||||
}
|
||||
def flatten(s, lower=True):
|
||||
r = s.rstrip(":").rstrip(" ").lstrip(" ").replace("-", "_")
|
||||
if lower:
|
||||
return r.lower()
|
||||
return r
|
||||
|
||||
result = {}
|
||||
for l in content_lines:
|
||||
split = l.decode().split(":")
|
||||
if split and split[0]:
|
||||
k = split[0]
|
||||
v = ":".join(split[1:])
|
||||
result[flatten(k)] = flatten(v, lower=False)
|
||||
return result
|
||||
|
||||
#
|
||||
# return {
|
||||
# (k.lower().rstrip(":".encode()).replace("-".encode(), "_".encode())).decode(): v.decode()
|
||||
# for k, v in {
|
||||
# l.split(": ".encode())[0]: "".encode().join(l.split(": ".encode())[1:])
|
||||
#
|
||||
# }.items() if k
|
||||
# }
|
||||
|
||||
|
||||
def parse_ssdp_request(operation, port, protocol, content_lines):
|
||||
|
|
Loading…
Reference in a new issue