From 18bc7075da0e9b943d4912d7f304d6dae7b19b77 Mon Sep 17 00:00:00 2001 From: "949036910@qq.com" <> Date: Wed, 3 Jun 2026 22:12:23 +0800 Subject: [PATCH] 11 --- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/src/commands/publish.rs | 12 +++++++++- src-tauri/src/nodejs.rs | 37 +++++++++++++++++++++++++++++++ src-tauri/tauri.conf.json | 2 +- 5 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index d35e021..95dfbd5 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5112,7 +5112,7 @@ dependencies = [ [[package]] name = "tauri-app" -version = "0.1.13" +version = "0.1.14" dependencies = [ "aes-gcm", "async-trait", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 76affd3..2f86dd2 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-app" -version = "0.1.13" +version = "0.1.14" description = "A Tauri App" authors = ["you"] edition = "2021" diff --git a/src-tauri/src/commands/publish.rs b/src-tauri/src/commands/publish.rs index 62594a8..897f8b0 100644 --- a/src-tauri/src/commands/publish.rs +++ b/src-tauri/src/commands/publish.rs @@ -2,7 +2,7 @@ use serde::Deserialize; use serde_json::{json, Value}; -use tauri::{AppHandle, Manager, State, Window}; +use tauri::{AppHandle, Emitter, Manager, State, Window}; use tokio::sync::watch; use crate::app_config::AppConfig; @@ -108,6 +108,16 @@ pub async fn publish_login( } else { (store.create_account_slot(platform.clone()).await?.id, true) }; + + let _ = window.emit( + "nodejs:event", + serde_json::json!({ + "type": "progress", + "scriptName": "publish_login.js", + "status": "正在加载登录脚本并启动浏览器…", + }), + ); + let result = run_publish_script( app, window, diff --git a/src-tauri/src/nodejs.rs b/src-tauri/src/nodejs.rs index c74c3e5..00133b6 100644 --- a/src-tauri/src/nodejs.rs +++ b/src-tauri/src/nodejs.rs @@ -293,7 +293,44 @@ async fn write_script_bundle( } +fn local_nodejs_scripts_dir() -> Option { + if let Ok(dir) = std::env::var("AICLIENT_NODEJS_SCRIPTS_DIR") { + let p = PathBuf::from(dir.trim()); + if p.is_dir() { + return Some(p); + } + } + #[cfg(debug_assertions)] + { + let dev = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("../../pythonbackend/scripts/nodejs"); + if dev.is_dir() { + return Some(dev); + } + } + None +} + +fn read_local_node_script(script_name: &str) -> Option { + let name = normalize_script_name(script_name)?; + let dir = local_nodejs_scripts_dir()?; + let path = dir.join(&name); + if !path.is_file() { + return None; + } + std::fs::read_to_string(&path).ok() +} + async fn fetch_node_script_source(script_name: &str) -> Result { + // if let Some(source) = read_local_node_script(script_name) { + // log::info!( + // target: "nodejs", + // "使用本地脚本: {}", + // script_name + // ); + // return Ok(source); + // } + let q = urlencoding::encode(script_name); let path = format!("/nodejs-scripts?name={q}"); let (_status, v) = crate::api_client::request_json("GET", &path, None, HashMap::new()) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index eac014f..176b5cd 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "aiclient", - "version": "0.1.13", + "version": "0.1.14", "identifier": "com.aiclient.desktop", "build": { "beforeDevCommand": "npm run dev --prefix ../aiclient_ui",