diff --git a/package.json b/package.json index 3da4d76..75f56ec 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "author": "leizi97", "description": "A simple network initiator based on Easytier", - "version": "1.3.1", + "version": "1.3.2", "scripts": { "dev": "nuxt dev --dotenv env/.env.dev --host 0.0.0.0", "build": "nuxt generate --dotenv env/.env.prod", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 23feaec..1e0ec83 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -1227,10 +1227,11 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "easytier-game" -version = "1.3.1" +version = "1.3.2" dependencies = [ "log", "planif", + "rand 0.8.5", "reqwest", "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 079548d..6dbc39d 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "easytier-game" -version = "1.3.1" +version = "1.3.2" homepage = "https://github.com/EasyTier/EasyTier" repository = "https://github.com/EasyTier/EasytierGame" description = "A simple network initiator based on Easytier" @@ -40,6 +40,7 @@ planif = { git = "https://github.com/mattrobineau/planif", tag = "1.0.1" } whoami = "1.5.2" tauri-plugin-fs = "2" tauri-plugin-clipboard-manager = "2.0.2" +rand = "0.8.5" tokio = { version = "1.41.1", features = ["process"] } # prost = "0.13" # prost-types = "0.13" diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 9c3489c..2167214 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -26,6 +26,29 @@ use windows::Win32::System::Power::{ }; use tokio::process::Command as tokioCommand; +use rand::Rng; + +fn generate_random_user_agent() -> String { + let user_agents = vec![ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{version} Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/{version} Safari/605.1.15", + "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/{version} Mobile/15E148 Safari/604.1", + "Mozilla/5.0 (Linux; Android 10; SM-G973F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{version} Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:{version}) Gecko/20100101 Firefox/{version}", + ]; + + let mut rng = rand::thread_rng(); + let template = user_agents[rng.gen_range(0..user_agents.len())]; + + // 生成随机版本号 + let version_major: u8 = rng.gen_range(70..90); + let version_minor: u8 = rng.gen_range(0..10); + let version_patch: u8 = rng.gen_range(0..10); + let version = format!("{}.{}.{}", version_major, version_minor, version_patch); + + // 替换模板中的版本号占位符 + template.replace("{version}", &version) +} #[tauri::command(rename_all = "snake_case")] fn prevent_sleep() -> bool { @@ -67,11 +90,11 @@ pub async fn fetch_releases() -> Result, Error> { let client = Client::new(); // 构建请求的URL let url = format!("https://api.github.com/repos/easytier/easytier/releases",); - + let user_agent = generate_random_user_agent(); // 发送HTTP GET请求 let response = client .get(&url) - .header("User-Agent", "Tauri-fetch") + .header("User-Agent", user_agent) .send() .await?; // 反序列化响应体为Release列表 @@ -84,11 +107,11 @@ async fn fetch_game_releases() -> [String; 2] { let client = Client::new(); // 构建请求的URL let url = format!("https://api.github.com/repos/Easytier/EasytierGame/releases",); - + let user_agent = generate_random_user_agent(); // 发送HTTP GET请求 if let Ok(response) = client .get(&url) - .header("User-Agent", "Tauri-fetch") + .header("User-Agent", user_agent) .send() .await { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f9c7a1c..4b8c800 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "productName": "easytier-game", - "version": "1.3.1", + "version": "1.3.2", "identifier": "com.tauri.easytier-game", "build": { @@ -13,7 +13,7 @@ "app": { "windows": [ { - "title": "easytier-game 1.3.1", + "title": "easytier-game 1.3.2", "label": "main", "minWidth": 340, "width": 340,