stupid async

This commit is contained in:
Roy Olav Purser 2021-05-27 21:34:48 +02:00
parent f96a58c141
commit 2cbf94f1ce
Signed by: roypur
GPG Key ID: E14D26A036F21656

View File

@ -199,15 +199,26 @@ class UpstreamHandler():
try: try:
embed_url = f'https://noembed.com/embed?url={self.upstream_safe}' embed_url = f'https://noembed.com/embed?url={self.upstream_safe}'
async with self.proxy.session() as session: async with self.proxy.session() as session:
try:
resp_embed_future = session.get(embed_url) resp_embed_future = session.get(embed_url)
resp_upstream_future = session.get(self.upstream) resp_upstream_future = session.get(self.upstream)
try:
resp_embed = await resp_embed_future resp_embed = await resp_embed_future
except Exception:
resp_embed = None
try:
resp_upstream = await resp_upstream_future resp_upstream = await resp_upstream_future
except Exception:
resp_upstream = None
text_embed_future = resp_embed.text() text_embed_future = resp_embed.text()
text_upstream_future = resp_upstream.text() text_upstream_future = resp_upstream.text()
try:
text_embed = await text_embed_future text_embed = await text_embed_future
except Exception:
text_embed = None
try:
text_upstream = await text_upstream_future text_upstream = await text_upstream_future
except Exception:
text_upstream = None
parser = MetaParser() parser = MetaParser()
parser.feed(text_upstream) parser.feed(text_upstream)
data_raw = json.loads(text_embed) data_raw = json.loads(text_embed)
@ -231,16 +242,20 @@ class UpstreamHandler():
standard_image = re.sub(r'\/[a-zA-Z0-9]+\.([a-zA-Z0-9]+)$', r'/sddefault.\1', image) standard_image = re.sub(r'\/[a-zA-Z0-9]+\.([a-zA-Z0-9]+)$', r'/sddefault.\1', image)
image_status_full_future = session.head(full_image) image_status_full_future = session.head(full_image)
image_status_standard_future = session.head(standard_image) image_status_standard_future = session.head(standard_image)
try:
image_status_full = await image_status_full_future image_status_full = await image_status_full_future
except Exception:
image_status_full = None
try:
image_status_standard = await image_status_standard_future image_status_standard = await image_status_standard_future
except Exception:
image_status_standard = None
if hasattr(image_status_full, "status") and (image_status_full.status < 400): if hasattr(image_status_full, "status") and (image_status_full.status < 400):
data["og:image"] = full_image data["og:image"] = full_image
elif hasattr(image_status_standard, "status") and (image_status_standard.status < 400): elif hasattr(image_status_standard, "status") and (image_status_standard.status < 400):
data["og:image"] = standard_image data["og:image"] = standard_image
except Exception as e: except Exception as e:
logger.info(e) logger.info(e)
except Exception as e:
logger.info(e)
return data return data
if icecast_server is not None and stream_server is not None: if icecast_server is not None and stream_server is not None: