mirror of
https://github.com/halfwaystudent/douyin-sparkflow.git
synced 2026-09-04 23:17:51 +08:00
fix: improve embedded Douyin login workspace
This commit is contained in:
@@ -135,6 +135,8 @@ class LoginDesktopManager:
|
||||
"--disable-dev-shm-usage",
|
||||
"--no-sandbox",
|
||||
"--start-maximized",
|
||||
"--window-position=0,0",
|
||||
"--window-size=1600,1000",
|
||||
"--disable-gpu",
|
||||
"--disable-gpu-compositing",
|
||||
"--disable-software-rasterizer",
|
||||
|
||||
@@ -122,6 +122,7 @@ class DeploymentContractTests(unittest.TestCase):
|
||||
self.assertIn("mem_limit: ${LOGIN_DESKTOP_MEMORY_LIMIT:-1200m}", compose)
|
||||
self.assertIn("pids_limit: ${LOGIN_DESKTOP_PIDS_LIMIT:-256}", compose)
|
||||
self.assertIn("-nap -wait 50 -defer 50", start_script)
|
||||
self.assertIn("--window-size=1600,1000", server)
|
||||
self.assertIn("start_idle_monitor", server)
|
||||
self.assertIn("schedule_stop_after_export", server)
|
||||
self.assertIn('reduced_motion="reduce"', server)
|
||||
|
||||
@@ -250,12 +250,15 @@ class WebUiSafetyTests(unittest.TestCase):
|
||||
self.assertIn("data-refresh-login-qr", dashboard)
|
||||
self.assertIn("/login-desktop/qr", dashboard)
|
||||
|
||||
def test_mobile_login_popup_opens_before_async_request(self):
|
||||
def test_login_workspace_loads_inside_dashboard_frame(self):
|
||||
script = (Path(app_module.STATIC_DIR) / "app.js").read_text(encoding="utf-8")
|
||||
block_start = script.index('document.querySelectorAll(".login-desktop-open")')
|
||||
block_end = script.index('document.querySelectorAll(".login-desktop-save")', block_start)
|
||||
block = script[block_start:block_end]
|
||||
self.assertLess(block.index('window.open("about:blank"'), block.index('postForm("/login-desktop/open"'))
|
||||
self.assertLess(block.index('postForm("/login-desktop/open"'), block.index("loadFrame(true)"))
|
||||
self.assertNotIn('window.open("about:blank"', block)
|
||||
self.assertNotIn("popup.location", block)
|
||||
self.assertIn("new URL(configuredPublicUrl, window.location.href).href", script)
|
||||
self.assertIn("refreshLoginQr(500)", block)
|
||||
self.assertIn('data.state === "queued"', block)
|
||||
self.assertIn("renderWorkspace(data.workspace)", block)
|
||||
|
||||
@@ -338,7 +338,15 @@
|
||||
if (!root) return;
|
||||
const section = document.getElementById("interactive-login-section");
|
||||
const csrfToken = root.dataset.csrfToken || "";
|
||||
const publicUrl = root.dataset.publicUrl || "";
|
||||
const configuredPublicUrl = root.dataset.publicUrl || "";
|
||||
const publicUrl = (() => {
|
||||
if (!configuredPublicUrl) return "";
|
||||
try {
|
||||
return new URL(configuredPublicUrl, window.location.href).href;
|
||||
} catch {
|
||||
return configuredPublicUrl;
|
||||
}
|
||||
})();
|
||||
const runtimeState = document.getElementById("login-desktop-runtime-state");
|
||||
const statusText = document.getElementById("login-desktop-status-text");
|
||||
const frame = document.querySelector("[data-login-frame]");
|
||||
@@ -472,7 +480,6 @@
|
||||
document.querySelectorAll(".login-desktop-open").forEach((button) => {
|
||||
button.addEventListener("click", async () => {
|
||||
if (section) section.open = true;
|
||||
const popup = publicUrl ? window.open("about:blank", "_blank", "noopener") : null;
|
||||
try {
|
||||
const reloginUniqueId = button.dataset.reloginUniqueId || "";
|
||||
const mode = button.dataset.loginMode || (reloginUniqueId ? "relogin" : "add");
|
||||
@@ -481,16 +488,11 @@
|
||||
...(reloginUniqueId ? { relogin_unique_id: reloginUniqueId } : {}),
|
||||
});
|
||||
renderWorkspace(data.workspace);
|
||||
if (data.state === "queued") {
|
||||
if (popup && !popup.closed) popup.close();
|
||||
return;
|
||||
}
|
||||
if (popup && !popup.closed) popup.location.href = publicUrl;
|
||||
if (data.state === "queued") return;
|
||||
loadFrame(true);
|
||||
refreshLoginQr(500);
|
||||
if (!popup && frame) frame.scrollIntoView({ behavior: "smooth", block: "start" });
|
||||
if (frame) frame.scrollIntoView({ behavior: "smooth", block: "start" });
|
||||
} catch (error) {
|
||||
if (popup && !popup.closed) popup.close();
|
||||
setStatus(`申请登录工作区失败:${error.message}`, "danger");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
</dialog>
|
||||
|
||||
<script defer src="/static/lucide.min.js?v=20260710"></script>
|
||||
<script defer src="/static/app.js?v=20260817"></script>
|
||||
<script defer src="/static/app.js?v=20260823"></script>
|
||||
{% block scripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user