diff options
-rw-r--r-- | web.py | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -1,6 +1,9 @@ import re -from fastapi import FastAPI +import aiohttp +from fastapi import FastAPI, Response + +import main app = FastAPI() @@ -8,5 +11,17 @@ utaten_pattern = re.compile(r'[a-z0-9]+') @app.get("/utaten/{item_id}/pdf") -def get_utaten_lyric_pdf(item_id: str): +async def get_utaten_lyric_pdf(item_id: str): raise NotImplementedError + + [email protected]("/utaten/{item_id}.tex") +async def get_utaten_lyric_pdf(item_id: str, resp: Response): + async with aiohttp.ClientSession() as ses: + async with ses.get(f'https://utaten.com/lyric/{item_id}/') as r: + if not r.ok: + resp.status_code = 503 + return + html = await r.text() + tex = main.html_to_tex(html) + return Response(content=tex, media_type='application/x-tex') |