add content-type
This commit is contained in:
parent
16aede77b5
commit
0c4e62d5fb
19
stream.py
19
stream.py
@ -47,9 +47,13 @@ if icecast_server is not None and stream_server is not None:
|
|||||||
playlist += stream_server + key + "\n"
|
playlist += stream_server + key + "\n"
|
||||||
|
|
||||||
def rewrite(current, proxy):
|
def rewrite(current, proxy):
|
||||||
|
resp = requests.head(current)
|
||||||
|
ctype = resp.headers.get("Content-Type", "text/plain").lower()
|
||||||
|
if "mpegurl" not in ctype:
|
||||||
|
return None
|
||||||
resp = requests.get(current)
|
resp = requests.get(current)
|
||||||
ndata = resp.text
|
ndata = None
|
||||||
if resp.text is not None and proxy_server is not None:
|
if resp.text is not None:
|
||||||
ndata = ""
|
ndata = ""
|
||||||
for line in resp.text.splitlines():
|
for line in resp.text.splitlines():
|
||||||
if line.startswith("#"):
|
if line.startswith("#"):
|
||||||
@ -58,10 +62,13 @@ def rewrite(current, proxy):
|
|||||||
data = {}
|
data = {}
|
||||||
data["upstream"] = urllib.parse.urljoin(current, line)
|
data["upstream"] = urllib.parse.urljoin(current, line)
|
||||||
data["proxy"] = proxy
|
data["proxy"] = proxy
|
||||||
|
if proxy is None or proxy_server is None:
|
||||||
|
ndata += data["upstream"]
|
||||||
|
else:
|
||||||
presp = requests.post(proxy_server, json=data)
|
presp = requests.post(proxy_server, json=data)
|
||||||
ndata += presp.text
|
ndata += presp.text
|
||||||
ndata += "\n"
|
ndata += "\n"
|
||||||
print(ndata)
|
return ndata
|
||||||
|
|
||||||
class MainHandler(tornado.web.RequestHandler):
|
class MainHandler(tornado.web.RequestHandler):
|
||||||
def handle_any(self, write):
|
def handle_any(self, write):
|
||||||
@ -95,8 +102,12 @@ class MainHandler(tornado.web.RequestHandler):
|
|||||||
if write:
|
if write:
|
||||||
self.write("stream not found")
|
self.write("stream not found")
|
||||||
else:
|
else:
|
||||||
rewrite(upstream, proxy_raw)
|
data = rewrite(upstream, proxy_raw)
|
||||||
|
if data is None:
|
||||||
self.redirect(upstream, status=303)
|
self.redirect(upstream, status=303)
|
||||||
|
else:
|
||||||
|
self.set_header("Content-Type", "application/vnd.apple.mpegurl")
|
||||||
|
self.write(data)
|
||||||
def get(self):
|
def get(self):
|
||||||
self.handle_any(True)
|
self.handle_any(True)
|
||||||
def head(self):
|
def head(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user