Use query param for /status and unquote URL for vercel support

Change the /status endpoint to accept the target URL via a query parameter instead of a path component. Update client-side EventSource to call /status?url=... and import urllib.parse.unquote to decode the incoming URL. Return a 400 error when the url param is missing. This avoids routing/encoding issues with encoded URLs.
This commit is contained in:
Wasi Master
2026-05-15 05:07:30 +06:00
parent 28c3fb659d
commit 0df86cfc2b
+10 -4
View File
@@ -7,7 +7,7 @@ import uuid
import threading
import time
from functools import lru_cache
from urllib.parse import urljoin, urlparse, quote
from urllib.parse import urljoin, urlparse, quote, unquote
from flask import request, Response
from bs4 import BeautifulSoup
@@ -435,7 +435,7 @@ html = """
elapsedEl.textContent = UI_STRINGS.elapsed_template.replace('{seconds}', sec);
}, 500);
const evtSource = new EventSource('/status/' + encodeURIComponent(link));
const evtSource = new EventSource('/status?url=' + encodeURIComponent(link));
evtSource.addEventListener('step', function(e) {
const data = JSON.parse(e.data);
@@ -752,8 +752,14 @@ def main_page():
return render_main_page()
@app.route("/status/<path:url>")
def status_stream(url):
@app.route("/status")
def status_stream():
raw_url = request.args.get("url", "")
url = unquote(raw_url)
if not url:
return "Missing URL", 400
strings = load_strings()
job_id = str(uuid.uuid4())
with jobs_lock: