retry content type

This commit is contained in:
Roy Olav Purser 2021-05-15 09:45:30 +02:00
parent 97563dec60
commit df153d5a12
Signed by: roypur
GPG Key ID: E14D26A036F21656

View File

@ -48,14 +48,18 @@ class ProxyElem():
def __repr__(self): def __repr__(self):
return str(self.proxy) return str(self.proxy)
async def content_type(self, url): async def content_type(self, url):
ctype = "binary/octet-stream" ctype = None
try: async with self.session() as session:
async with self.session() as session: for i in range(5):
resp = await session.head(url) try:
ctype = resp.headers.get("Content-Type", "binary/octet-stream") resp = await session.head(url)
except Exception as e: ctype = resp.headers.get("Content-Type", None)
logger.info(e) except Exception as e:
return ctype logger.info(e)
else:
if isinstance(ctype, str):
return ctype
return "binary/octet-type"
async def proxy_url(self, current, path): async def proxy_url(self, current, path):
jdata = None jdata = None
data = {} data = {}
@ -348,7 +352,6 @@ class MainHandler(tornado.web.RequestHandler):
else: else:
upstream_proxy = await handler.proxy.proxy_url(upstream, None) upstream_proxy = await handler.proxy.proxy_url(upstream, None)
ctype = await handler.proxy.content_type(upstream_proxy) ctype = await handler.proxy.content_type(upstream_proxy)
logger.info(upstream_proxy)
data = None data = None
if "mpegurl" in ctype.lower(): if "mpegurl" in ctype.lower():
data = await rewrite(upstream, handler.proxy) data = await rewrite(upstream, handler.proxy)