mirror of
https://github.com/EasyTier/EasytierGame.git
synced 2025-05-19 10:27:56 +00:00
优化对githubApi的请求,减少被过滤无法获取的情况发生
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"author": "leizi97",
|
"author": "leizi97",
|
||||||
"description": "A simple network initiator based on Easytier",
|
"description": "A simple network initiator based on Easytier",
|
||||||
"version": "1.3.1",
|
"version": "1.3.2",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "nuxt dev --dotenv env/.env.dev --host 0.0.0.0",
|
"dev": "nuxt dev --dotenv env/.env.dev --host 0.0.0.0",
|
||||||
"build": "nuxt generate --dotenv env/.env.prod",
|
"build": "nuxt generate --dotenv env/.env.prod",
|
||||||
|
|||||||
Generated
+2
-1
@@ -1227,10 +1227,11 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "easytier-game"
|
name = "easytier-game"
|
||||||
version = "1.3.1"
|
version = "1.3.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"planif",
|
"planif",
|
||||||
|
"rand 0.8.5",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "easytier-game"
|
name = "easytier-game"
|
||||||
version = "1.3.1"
|
version = "1.3.2"
|
||||||
homepage = "https://github.com/EasyTier/EasyTier"
|
homepage = "https://github.com/EasyTier/EasyTier"
|
||||||
repository = "https://github.com/EasyTier/EasytierGame"
|
repository = "https://github.com/EasyTier/EasytierGame"
|
||||||
description = "A simple network initiator based on Easytier"
|
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"
|
whoami = "1.5.2"
|
||||||
tauri-plugin-fs = "2"
|
tauri-plugin-fs = "2"
|
||||||
tauri-plugin-clipboard-manager = "2.0.2"
|
tauri-plugin-clipboard-manager = "2.0.2"
|
||||||
|
rand = "0.8.5"
|
||||||
tokio = { version = "1.41.1", features = ["process"] }
|
tokio = { version = "1.41.1", features = ["process"] }
|
||||||
# prost = "0.13"
|
# prost = "0.13"
|
||||||
# prost-types = "0.13"
|
# prost-types = "0.13"
|
||||||
|
|||||||
+27
-4
@@ -26,6 +26,29 @@ use windows::Win32::System::Power::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use tokio::process::Command as tokioCommand;
|
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")]
|
#[tauri::command(rename_all = "snake_case")]
|
||||||
fn prevent_sleep() -> bool {
|
fn prevent_sleep() -> bool {
|
||||||
@@ -67,11 +90,11 @@ pub async fn fetch_releases() -> Result<Vec<Release>, Error> {
|
|||||||
let client = Client::new();
|
let client = Client::new();
|
||||||
// 构建请求的URL
|
// 构建请求的URL
|
||||||
let url = format!("https://api.github.com/repos/easytier/easytier/releases",);
|
let url = format!("https://api.github.com/repos/easytier/easytier/releases",);
|
||||||
|
let user_agent = generate_random_user_agent();
|
||||||
// 发送HTTP GET请求
|
// 发送HTTP GET请求
|
||||||
let response = client
|
let response = client
|
||||||
.get(&url)
|
.get(&url)
|
||||||
.header("User-Agent", "Tauri-fetch")
|
.header("User-Agent", user_agent)
|
||||||
.send()
|
.send()
|
||||||
.await?;
|
.await?;
|
||||||
// 反序列化响应体为Release列表
|
// 反序列化响应体为Release列表
|
||||||
@@ -84,11 +107,11 @@ async fn fetch_game_releases() -> [String; 2] {
|
|||||||
let client = Client::new();
|
let client = Client::new();
|
||||||
// 构建请求的URL
|
// 构建请求的URL
|
||||||
let url = format!("https://api.github.com/repos/Easytier/EasytierGame/releases",);
|
let url = format!("https://api.github.com/repos/Easytier/EasytierGame/releases",);
|
||||||
|
let user_agent = generate_random_user_agent();
|
||||||
// 发送HTTP GET请求
|
// 发送HTTP GET请求
|
||||||
if let Ok(response) = client
|
if let Ok(response) = client
|
||||||
.get(&url)
|
.get(&url)
|
||||||
.header("User-Agent", "Tauri-fetch")
|
.header("User-Agent", user_agent)
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||||
"productName": "easytier-game",
|
"productName": "easytier-game",
|
||||||
"version": "1.3.1",
|
"version": "1.3.2",
|
||||||
"identifier": "com.tauri.easytier-game",
|
"identifier": "com.tauri.easytier-game",
|
||||||
|
|
||||||
"build": {
|
"build": {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"app": {
|
"app": {
|
||||||
"windows": [
|
"windows": [
|
||||||
{
|
{
|
||||||
"title": "easytier-game 1.3.1",
|
"title": "easytier-game 1.3.2",
|
||||||
"label": "main",
|
"label": "main",
|
||||||
"minWidth": 340,
|
"minWidth": 340,
|
||||||
"width": 340,
|
"width": 340,
|
||||||
|
|||||||
Reference in New Issue
Block a user