diff --git a/CaddyfileDev b/CaddyfileDev index 853f554..6d8a3c3 100644 --- a/CaddyfileDev +++ b/CaddyfileDev @@ -162,6 +162,11 @@ respond "Access denied" 403 } + route @miro/* { + uri replace @miro/ / + reverse_proxy https://miro.medium.com + } + route /* { reverse_proxy web:7080 } diff --git a/CaddyfileDevTemplate b/CaddyfileDevTemplate index f02d5df..ee29a5b 100644 --- a/CaddyfileDevTemplate +++ b/CaddyfileDevTemplate @@ -5,6 +5,11 @@ {{ template }} + route @miro/* { + uri replace @miro/ / + reverse_proxy https://miro.medium.com + } + route /* { reverse_proxy web:7080 } diff --git a/CaddyfileProdTemplate b/CaddyfileProdTemplate index 8b1abb6..53a9024 100644 --- a/CaddyfileProdTemplate +++ b/CaddyfileProdTemplate @@ -6,6 +6,11 @@ freedium.cfd { {{ template }} + route @miro/* { + uri replace @miro/ / + reverse_proxy https://miro.medium.com + } + route /* { reverse_proxy web:7080 } diff --git a/server/handlers/main.py b/server/handlers/main.py index 216654d..acde418 100644 --- a/server/handlers/main.py +++ b/server/handlers/main.py @@ -39,10 +39,10 @@ async def route_processing(path: str, request: Request): if key_data != config.ADMIN_SECRET_KEY: return JSONResponse({"message": f"Wrong secret key: {key_data}"}, status_code=403) - if path.startswith("@miro/"): - miro_data = path.removeprefix("@miro/") - return await miro_proxy(miro_data) - elif path.startswith("render_iframe/"): + # if path.startswith("@miro/"): + # miro_data = path.removeprefix("@miro/") + # return await miro_proxy(miro_data) + if path.startswith("render_iframe/"): iframe_id = path.removeprefix("render_iframe/") return await iframe_proxy(iframe_id) diff --git a/server/handlers/reverse_proxy.py b/server/handlers/reverse_proxy.py index 278e3c0..89691d7 100644 --- a/server/handlers/reverse_proxy.py +++ b/server/handlers/reverse_proxy.py @@ -8,8 +8,9 @@ from bs4 import BeautifulSoup, Comment IFRAME_HEADERS = {"Access-Control-Allow-Origin": "*", "X-Frame-Options": "SAMEORIGIN"} + @trace -async def iframe_proxy(iframe_id): +async def iframe_proxy(iframe_id: str): # How Medium embeds works: https://stackoverflow.com/questions/56594766/medium-embed-ly-notifyresize-does-not-work-on-safari async with aiohttp.ClientSession() as client: request = await client.get(