Format code with yapf
This commit fixes the style issues introduced in 1dd7816 according to the output
from yapf.
Details: https://deepsource.io/gh/kokarare1212/librespot-python/transform/6f1ff38a-0e76-4ac9-9757-4a6558507d5d/
This commit is contained in:
committed by
GitHub
parent
1dd7816590
commit
6bb8764626
@@ -1097,10 +1097,13 @@ class Session(Closeable, MessageListener, SubListener):
|
|||||||
def blob(self, username: str, blob: bytes) -> Session.Builder:
|
def blob(self, username: str, blob: bytes) -> Session.Builder:
|
||||||
if self.device_id is None:
|
if self.device_id is None:
|
||||||
raise TypeError("You must specify the device ID first.")
|
raise TypeError("You must specify the device ID first.")
|
||||||
self.login_credentials = self.decrypt_blob(self.device_id, username, blob)
|
self.login_credentials = self.decrypt_blob(self.device_id,
|
||||||
|
username, blob)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def decrypt_blob(self, device_id: str, username: str, encrypted_blob: bytes) -> Authentication.LoginCredentials:
|
def decrypt_blob(
|
||||||
|
self, device_id: str, username: str,
|
||||||
|
encrypted_blob: bytes) -> Authentication.LoginCredentials:
|
||||||
encrypted_blob = base64.b64decode(encrypted_blob)
|
encrypted_blob = base64.b64decode(encrypted_blob)
|
||||||
sha1 = SHA1.new()
|
sha1 = SHA1.new()
|
||||||
sha1.update(device_id.encode())
|
sha1.update(device_id.encode())
|
||||||
@@ -1119,7 +1122,9 @@ class Session(Closeable, MessageListener, SubListener):
|
|||||||
type_int = self.read_blob_int(blob)
|
type_int = self.read_blob_int(blob)
|
||||||
type_ = Authentication.AuthenticationType.Name(type_int)
|
type_ = Authentication.AuthenticationType.Name(type_int)
|
||||||
if type_ is None:
|
if type_ is None:
|
||||||
raise IOError(TypeError("Unknown AuthenticationType: {}".format(type_int)))
|
raise IOError(
|
||||||
|
TypeError(
|
||||||
|
"Unknown AuthenticationType: {}".format(type_int)))
|
||||||
le = self.read_blob_int(blob)
|
le = self.read_blob_int(blob)
|
||||||
auth_data = blob.read(le)
|
auth_data = blob.read(le)
|
||||||
return Authentication.LoginCredentials(
|
return Authentication.LoginCredentials(
|
||||||
|
|||||||
@@ -62,12 +62,16 @@ class ZeroconfServer(Closeable):
|
|||||||
if listen_port == -1:
|
if listen_port == -1:
|
||||||
listen_port = random.randint(self.__min_port + 1, self.__max_port)
|
listen_port = random.randint(self.__min_port + 1, self.__max_port)
|
||||||
self.__runner = ZeroconfServer.HttpRunner(self, listen_port)
|
self.__runner = ZeroconfServer.HttpRunner(self, listen_port)
|
||||||
threading.Thread(target=self.__runner.run, name="zeroconf-http-server").start()
|
threading.Thread(target=self.__runner.run,
|
||||||
|
name="zeroconf-http-server").start()
|
||||||
self.__zeroconf = zeroconf.Zeroconf()
|
self.__zeroconf = zeroconf.Zeroconf()
|
||||||
self.__service_info = zeroconf.ServiceInfo(
|
self.__service_info = zeroconf.ServiceInfo(
|
||||||
ZeroconfServer.service,
|
ZeroconfServer.service,
|
||||||
inner.device_name + "." + ZeroconfServer.service,
|
inner.device_name + "." + ZeroconfServer.service,
|
||||||
listen_port, 0, 0, {
|
listen_port,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
{
|
||||||
"CPath": "/",
|
"CPath": "/",
|
||||||
"VERSION": "1.0",
|
"VERSION": "1.0",
|
||||||
"STACK": "SP",
|
"STACK": "SP",
|
||||||
@@ -75,13 +79,15 @@ class ZeroconfServer(Closeable):
|
|||||||
inner.device_name,
|
inner.device_name,
|
||||||
)
|
)
|
||||||
self.__zeroconf.register_service(self.__service_info)
|
self.__zeroconf.register_service(self.__service_info)
|
||||||
threading.Thread(target=self.__zeroconf.start, name="zeroconf-multicast-dns-server").start()
|
threading.Thread(target=self.__zeroconf.start,
|
||||||
|
name="zeroconf-multicast-dns-server").start()
|
||||||
|
|
||||||
def close(self) -> None:
|
def close(self) -> None:
|
||||||
self.__zeroconf.close()
|
self.__zeroconf.close()
|
||||||
self.__runner.close()
|
self.__runner.close()
|
||||||
|
|
||||||
def handle_add_user(self, __socket: socket.socket, params: dict[str, str], http_version: str) -> None:
|
def handle_add_user(self, __socket: socket.socket, params: dict[str, str],
|
||||||
|
http_version: str) -> None:
|
||||||
username = params.get("userName")
|
username = params.get("userName")
|
||||||
if not username:
|
if not username:
|
||||||
logging.error("Missing userName!")
|
logging.error("Missing userName!")
|
||||||
@@ -95,13 +101,16 @@ class ZeroconfServer(Closeable):
|
|||||||
logging.error("Missing clientKey!")
|
logging.error("Missing clientKey!")
|
||||||
with self.__connection_lock:
|
with self.__connection_lock:
|
||||||
if username == self.__connecting_username:
|
if username == self.__connecting_username:
|
||||||
logging.info("{} is already trying to connect.".format(username))
|
logging.info(
|
||||||
|
"{} is already trying to connect.".format(username))
|
||||||
__socket.send(http_version.encode())
|
__socket.send(http_version.encode())
|
||||||
__socket.send(b" 403 Forbidden")
|
__socket.send(b" 403 Forbidden")
|
||||||
__socket.send(self.__eol)
|
__socket.send(self.__eol)
|
||||||
__socket.send(self.__eol)
|
__socket.send(self.__eol)
|
||||||
return
|
return
|
||||||
shared_key = util.int_to_bytes(self.__keys.compute_shared_key(base64.b64decode(client_key_str.encode())))
|
shared_key = util.int_to_bytes(
|
||||||
|
self.__keys.compute_shared_key(
|
||||||
|
base64.b64decode(client_key_str.encode())))
|
||||||
blob_bytes = base64.b64decode(blob_str)
|
blob_bytes = base64.b64decode(blob_str)
|
||||||
iv = blob_bytes[:16]
|
iv = blob_bytes[:16]
|
||||||
encrypted = blob_bytes[16:len(blob_bytes) - 20]
|
encrypted = blob_bytes[16:len(blob_bytes) - 20]
|
||||||
@@ -129,7 +138,8 @@ class ZeroconfServer(Closeable):
|
|||||||
decrypted = aes.decrypt(encrypted)
|
decrypted = aes.decrypt(encrypted)
|
||||||
with self.__connection_lock:
|
with self.__connection_lock:
|
||||||
self.__connecting_username = username
|
self.__connecting_username = username
|
||||||
logging.info("Accepted new user from {}. [deviceId: {}]".format(params.get("deviceName"), self.__inner.device_id))
|
logging.info("Accepted new user from {}. [deviceId: {}]".format(
|
||||||
|
params.get("deviceName"), self.__inner.device_id))
|
||||||
response = json.dumps(self.__default_successful_add_user)
|
response = json.dumps(self.__default_successful_add_user)
|
||||||
__socket.send(http_version.encode())
|
__socket.send(http_version.encode())
|
||||||
__socket.send(b" 200 OK")
|
__socket.send(b" 200 OK")
|
||||||
@@ -149,14 +159,18 @@ class ZeroconfServer(Closeable):
|
|||||||
with self.__connection_lock:
|
with self.__connection_lock:
|
||||||
self.__connecting_username = None
|
self.__connecting_username = None
|
||||||
|
|
||||||
def handle_get_info(self, __socket: socket.socket, http_version: str) -> None:
|
def handle_get_info(self, __socket: socket.socket,
|
||||||
|
http_version: str) -> None:
|
||||||
info = copy.deepcopy(self.__default_get_info_fields)
|
info = copy.deepcopy(self.__default_get_info_fields)
|
||||||
info["device_id"] = self.__inner.device_id
|
info["device_id"] = self.__inner.device_id
|
||||||
info["remoteName"] = self.__inner.device_name
|
info["remoteName"] = self.__inner.device_name
|
||||||
info["publicKey"] = base64.b64encode(self.__keys.public_key_bytes()).decode()
|
info["publicKey"] = base64.b64encode(
|
||||||
|
self.__keys.public_key_bytes()).decode()
|
||||||
info["deviceType"] = Connect.DeviceType.Name(self.__inner.device_type)
|
info["deviceType"] = Connect.DeviceType.Name(self.__inner.device_type)
|
||||||
with self.__connection_lock:
|
with self.__connection_lock:
|
||||||
info["activeUser"] = self.__connecting_username if self.__connecting_username is not None else self.__session.username() if self.has_valid_session() else ""
|
info[
|
||||||
|
"activeUser"] = self.__connecting_username if self.__connecting_username is not None else self.__session.username(
|
||||||
|
) if self.has_valid_session() else ""
|
||||||
|
|
||||||
def has_valid_session(self) -> bool:
|
def has_valid_session(self) -> bool:
|
||||||
valid = self.__session and self.__session.is_valid()
|
valid = self.__session and self.__session.is_valid()
|
||||||
@@ -195,13 +209,15 @@ class ZeroconfServer(Closeable):
|
|||||||
def anonymous():
|
def anonymous():
|
||||||
self.__handle(__socket)
|
self.__handle(__socket)
|
||||||
__socket.close()
|
__socket.close()
|
||||||
|
|
||||||
self.__worker.submit(anonymous)
|
self.__worker.submit(anonymous)
|
||||||
|
|
||||||
def __handle(self, __socket: socket.socket) -> None:
|
def __handle(self, __socket: socket.socket) -> None:
|
||||||
request = io.BytesIO(__socket.recv(1024 * 1024))
|
request = io.BytesIO(__socket.recv(1024 * 1024))
|
||||||
request_line = request.readline().split(b" ")
|
request_line = request.readline().split(b" ")
|
||||||
if len(request_line) != 3:
|
if len(request_line) != 3:
|
||||||
logging.warning("Unexpected request line: {}".format(request_line))
|
logging.warning(
|
||||||
|
"Unexpected request line: {}".format(request_line))
|
||||||
method = request_line[0].decode()
|
method = request_line[0].decode()
|
||||||
path = request_line[1].decode()
|
path = request_line[1].decode()
|
||||||
http_version = request_line[2].decode()
|
http_version = request_line[2].decode()
|
||||||
@@ -213,7 +229,9 @@ class ZeroconfServer(Closeable):
|
|||||||
split = header.split(b":")
|
split = header.split(b":")
|
||||||
headers[split[0].decode()] = split[1].strip().decode()
|
headers[split[0].decode()] = split[1].strip().decode()
|
||||||
if not self.__zeroconf_server.has_valid_session():
|
if not self.__zeroconf_server.has_valid_session():
|
||||||
logging.debug("Handling request: {}, {}, {}, headers: {}".format(method, path, http_version, headers))
|
logging.debug(
|
||||||
|
"Handling request: {}, {}, {}, headers: {}".format(
|
||||||
|
method, path, http_version, headers))
|
||||||
params = {}
|
params = {}
|
||||||
if method == "POST":
|
if method == "POST":
|
||||||
content_type = headers.get("Content-Type")
|
content_type = headers.get("Content-Type")
|
||||||
@@ -229,7 +247,8 @@ class ZeroconfServer(Closeable):
|
|||||||
pairs = body.split("&")
|
pairs = body.split("&")
|
||||||
for pair in pairs:
|
for pair in pairs:
|
||||||
split = pair.split("=")
|
split = pair.split("=")
|
||||||
params[urllib.parse.unquote(split[0])] = urllib.parse.unquote(split[1])
|
params[urllib.parse.unquote(
|
||||||
|
split[0])] = urllib.parse.unquote(split[1])
|
||||||
else:
|
else:
|
||||||
params = self.__zeroconf_server.parse_path(path)
|
params = self.__zeroconf_server.parse_path(path)
|
||||||
action = params.get("action")
|
action = params.get("action")
|
||||||
@@ -238,12 +257,12 @@ class ZeroconfServer(Closeable):
|
|||||||
return
|
return
|
||||||
self.handle_request(__socket, http_version, action, params)
|
self.handle_request(__socket, http_version, action, params)
|
||||||
|
|
||||||
def handle_request(self, __socket: socket.socket, http_version: str, action: str, params: dict[str, str]) -> None:
|
def handle_request(self, __socket: socket.socket, http_version: str,
|
||||||
|
action: str, params: dict[str, str]) -> None:
|
||||||
if action == "addUser":
|
if action == "addUser":
|
||||||
if params is None:
|
if params is None:
|
||||||
raise RuntimeError
|
raise RuntimeError
|
||||||
|
|
||||||
|
|
||||||
class Inner:
|
class Inner:
|
||||||
conf: typing.Final[Session.Configuration]
|
conf: typing.Final[Session.Configuration]
|
||||||
device_name: typing.Final[str]
|
device_name: typing.Final[str]
|
||||||
@@ -251,9 +270,12 @@ class ZeroconfServer(Closeable):
|
|||||||
device_type: typing.Final[Connect.DeviceType]
|
device_type: typing.Final[Connect.DeviceType]
|
||||||
preferred_locale: typing.Final[str]
|
preferred_locale: typing.Final[str]
|
||||||
|
|
||||||
def __init__(self, device_type: Connect.DeviceType, device_name: str, device_id: str, preferred_locale: str, conf: Session.Configuration):
|
def __init__(self, device_type: Connect.DeviceType, device_name: str,
|
||||||
|
device_id: str, preferred_locale: str,
|
||||||
|
conf: Session.Configuration):
|
||||||
self.conf = conf
|
self.conf = conf
|
||||||
self.device_name = device_name
|
self.device_name = device_name
|
||||||
self.device_id = util.random_hex_string(40).lower() if device_id else device_id
|
self.device_id = util.random_hex_string(
|
||||||
|
40).lower() if device_id else device_id
|
||||||
self.device_type = device_type
|
self.device_type = device_type
|
||||||
self.preferred_locale = preferred_locale
|
self.preferred_locale = preferred_locale
|
||||||
|
|||||||
Reference in New Issue
Block a user