Procházet zdrojové kódy

fix: user-agent version error

MystiPanda před 1 rokem
rodič
revize
b65ad1ebd7

+ 6 - 2
src-tauri/src/config/prfitem.rs

@@ -1,4 +1,4 @@
-use crate::utils::{dirs, help, tmpl};
+use crate::utils::{dirs, help, resolve::VERSION, tmpl};
 use anyhow::{bail, Context, Result};
 use reqwest::StatusCode;
 use serde::{Deserialize, Serialize};
@@ -231,7 +231,11 @@ impl PrfItem {
             };
         }
 
-        let version = format!("clash-verge-rev");
+        let version = match VERSION.get() {
+            Some(v) => format!("clash-verge/v{}", v),
+            None => format!("clash-verge/unknown"),
+        };
+
         builder = builder.user_agent(user_agent.unwrap_or(version));
 
         let resp = builder.build()?.get(url).send().await?;

+ 5 - 1
src-tauri/src/utils/resolve.rs

@@ -2,10 +2,13 @@ use crate::config::IVerge;
 use crate::{config::Config, core::*, utils::init, utils::server};
 use crate::{log_err, trace_err};
 use anyhow::Result;
+use once_cell::sync::OnceCell;
 use serde_yaml::Mapping;
 use std::net::TcpListener;
 use tauri::{App, AppHandle, Manager};
 
+pub static VERSION: OnceCell<String> = OnceCell::new();
+
 pub fn find_unused_port() -> Result<u16> {
     match TcpListener::bind("127.0.0.1:0") {
         Ok(listener) => {
@@ -27,8 +30,9 @@ pub fn find_unused_port() -> Result<u16> {
 pub fn resolve_setup(app: &mut App) {
     #[cfg(target_os = "macos")]
     app.set_activation_policy(tauri::ActivationPolicy::Accessory);
-
+    let version = app.package_info().version.to_string();
     handle::Handle::global().init(app.app_handle());
+    VERSION.get_or_init(|| version.clone());
 
     log_err!(init::init_resources());
     #[cfg(target_os = "windows")]

+ 1 - 1
src/components/profile/profile-viewer.tsx

@@ -209,7 +209,7 @@ export const ProfileViewer = forwardRef<ProfileViewerRef, Props>(
                 <TextField
                   {...text}
                   {...field}
-                  placeholder={`clash-verge-rev`}
+                  placeholder={`clash-verge/v${version}`}
                   label="User Agent"
                 />
               )}