diff --git a/examples/server/main.py b/examples/server/main.py index 92bb7eb..f026335 100644 --- a/examples/server/main.py +++ b/examples/server/main.py @@ -32,9 +32,8 @@ def handler(client: socket.socket, address: str): continue else: req_header[key.decode().lower()] = value.decode() - status, headers, content, manually = response( - client, req_uri.decode(), req_header, req_body_str - ) + status, headers, content, manually = response(client, req_uri.decode(), + req_header, req_body_str) if not manually: client.send(req_http_version + b" " + status.encode() + b"\r\n") client.send(b"Access-Control-Allow-Origin: *\r\n") @@ -75,51 +74,42 @@ def main(): threading.Thread(target=handler, args=sock.accept()).start() -def response( - client: socket.socket, uri: str, header: dict, body: bytes -) -> tuple[str, list, bytes, bool]: +def response(client: socket.socket, uri: str, header: dict, + body: bytes) -> tuple[str, list, bytes, bool]: if re.search(r"^/audio/track/([0-9a-zA-Z]{22})$", uri) is not None: - track_id_search = re.search(r"^/audio/track/(?P[0-9a-zA-Z]{22})$", uri) + track_id_search = re.search( + r"^/audio/track/(?P[0-9a-zA-Z]{22})$", uri) track_id_str = track_id_search.group("TrackID") track_id = TrackId.from_base62(track_id_str) stream = session.content_feeder().load( - track_id, VorbisOnlyAudioQuality(AudioQuality.VERY_HIGH), False, None - ) + track_id, VorbisOnlyAudioQuality(AudioQuality.VERY_HIGH), False, + None) start = 0 end = stream.input_stream.stream().size() if header.get("range") is not None: range_search = re.search( - "^bytes=(?P[0-9]+?)-(?P[0-9]+?)$", header.get("range") - ) + "^bytes=(?P[0-9]+?)-(?P[0-9]+?)$", + header.get("range")) if range_search is not None: start = int(range_search.group("start")) - end = ( - int(range_search.group("end")) - if int(range_search.group("end")) - <= stream.input_stream.stream().size() - else stream.input_stream.stream().size() - ) + end = (int(range_search.group("end")) + if int(range_search.group("end")) <= + stream.input_stream.stream().size() else + stream.input_stream.stream().size()) stream.input_stream.stream().skip(start) client.send(b"HTTP/1.0 200 OK\r\n") client.send(b"Access-Control-Allow-Origin: *\r\n") - client.send( - b"Content-Length: " - + ( - str(stream.input_stream.stream().size()).encode() - if stream.input_stream.stream().size() == end - else "{}-{}/{}".format( - start, end, stream.input_stream.stream().size() - ).encode() - ) - + b"\r\n" - ) + client.send(b"Content-Length: " + + (str(stream.input_stream.stream().size()).encode() if + stream.input_stream.stream().size() == end else "{}-{}/{}" + .format(start, end, + stream.input_stream.stream().size()).encode()) + + b"\r\n") client.send(b"Content-Type: audio/ogg\r\n") client.send(b"\r\n") while True: - if ( - stream.input_stream.stream().pos() - >= stream.input_stream.stream().size() - ): + if (stream.input_stream.stream().pos() >= + stream.input_stream.stream().size()): break byte = stream.input_stream.stream().read() client.send(bytes([byte]))