Restyled by black

This commit is contained in:
Restyled.io
2021-05-25 04:53:32 +00:00
parent 498546ded8
commit ac1e3dc95a

View File

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