diff --git a/src-tauri/src/data/prfitem.rs b/src-tauri/src/data/prfitem.rs index 41be194e16464b910fb13f86ecf398e81480c59e..8557495495d4fca23d0e86e4bd71504e9802c831 100644 --- a/src-tauri/src/data/prfitem.rs +++ b/src-tauri/src/data/prfitem.rs @@ -204,7 +204,9 @@ impl PrfItem { builder = builder.no_proxy(); } - builder = builder.user_agent(user_agent.unwrap_or("clash-verge/v1.0.0".into())); + let version = unsafe { dirs::APP_VERSION }; + let version = format!("clash-verge/{version}"); + builder = builder.user_agent(user_agent.unwrap_or(version)); let resp = builder.build()?.get(url).send().await?; let header = resp.headers(); diff --git a/src-tauri/src/utils/dirs.rs b/src-tauri/src/utils/dirs.rs index 3467c34e5c6afba461c46facfe053eeb7e25145d..2bc3cfd909488e7696c37738c5b64ac3fbe97a60 100644 --- a/src-tauri/src/utils/dirs.rs +++ b/src-tauri/src/utils/dirs.rs @@ -21,6 +21,8 @@ static mut RESOURCE_DIR: Option<PathBuf> = None; #[allow(unused)] static mut PORTABLE_FLAG: bool = false; +pub static mut APP_VERSION: &str = "v1.1.1"; + /// initialize portable flag #[allow(unused)] pub unsafe fn init_portable_flag() { @@ -66,6 +68,10 @@ pub fn app_resources_dir(package_info: &PackageInfo) -> PathBuf { unsafe { RESOURCE_DIR = Some(res_dir.clone()); + + let ver = &package_info.version; + let ver_str = format!("v{}.{}.{}", ver.major, ver.minor, ver.patch); + APP_VERSION = Box::leak(Box::new(ver_str)); } res_dir diff --git a/src/components/profile/info-editor.tsx b/src/components/profile/info-editor.tsx index 2bb2c1d6d4d92ac8c687dc8726f011d7fb6443d9..2f9a107b8b845d4f80ee03ceea3503e70e939905 100644 --- a/src/components/profile/info-editor.tsx +++ b/src/components/profile/info-editor.tsx @@ -13,6 +13,7 @@ import { } from "@mui/material"; import { Settings } from "@mui/icons-material"; import { patchProfile } from "@/services/cmds"; +import { version } from "@root/package.json"; import Notice from "../base/base-notice"; interface Props { @@ -119,7 +120,7 @@ const InfoEditor = (props: Props) => { {...textFieldProps} label="User Agent" value={option.user_agent} - placeholder="clash-verge/v1.0.0" + placeholder={`clash-verge/v${version}`} onChange={(e) => setOption({ user_agent: e.target.value })} onKeyDown={(e) => e.key === "Enter" && onUpdate()} />