mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-15 22:40:42 +08:00
* feat: add tauri-plugin-mihomo * refactor: invock mihomo api by use tauri-plugin-mihomo * chore: todo * chore: update * chore: update * chore: update * chore: update * fix: incorrect delay status and update pretty config * chore: update * chore: remove cache * chore: update * chore: update * fix: app freezed when change group proxy * chore: update * chore: update * chore: add rustfmt.toml to tauri-plugin-mihomo * chore: happy clippy * refactor: connect mihomo websocket * chore: update * chore: update * fix: parse bigint to number * chore: update * Revert "fix: parse bigint to number" This reverts commit 74c006522e23aa52cf8979a8fb47d2b1ae0bb043. * chore: use number instead of bigint * chore: cleanup * fix: rule data not refresh when switch profile * chore: update * chore: cleanup * chore: update * fix: traffic graph data display * feat: add ipc connection pool * chore: update * chore: clippy * fix: incorrect delay status * fix: typo * fix: empty proxies tray menu * chore: clippy * chore: import tauri-plugin-mihomo by using git repo * chore: cleanup * fix: mihomo api * fix: incorrect delay status * chore: update tauri-plugin-mihomo dep chore: update
70 lines
2.0 KiB
Rust
70 lines
2.0 KiB
Rust
use crate::{
|
|
cmd::system,
|
|
core::{CoreManager, handle},
|
|
};
|
|
use std::fmt::{self, Debug, Formatter};
|
|
use sysinfo::System;
|
|
|
|
pub struct PlatformSpecification {
|
|
system_name: String,
|
|
system_version: String,
|
|
system_kernel_version: String,
|
|
system_arch: String,
|
|
verge_version: String,
|
|
running_mode: String,
|
|
is_admin: bool,
|
|
}
|
|
|
|
impl Debug for PlatformSpecification {
|
|
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
|
|
write!(
|
|
f,
|
|
"System Name: {}\nSystem Version: {}\nSystem kernel Version: {}\nSystem Arch: {}\nVerge Version: {}\nRunning Mode: {}\nIs Admin: {}",
|
|
self.system_name,
|
|
self.system_version,
|
|
self.system_kernel_version,
|
|
self.system_arch,
|
|
self.verge_version,
|
|
self.running_mode,
|
|
self.is_admin
|
|
)
|
|
}
|
|
}
|
|
|
|
impl PlatformSpecification {
|
|
pub fn new() -> Self {
|
|
let system_name = System::name().unwrap_or("Null".into());
|
|
let system_version = System::long_os_version().unwrap_or("Null".into());
|
|
let system_kernel_version = System::kernel_version().unwrap_or("Null".into());
|
|
let system_arch = System::cpu_arch();
|
|
|
|
let handler = handle::Handle::app_handle();
|
|
let verge_version = handler.package_info().version.to_string();
|
|
|
|
// 使用默认值避免在同步上下文中执行异步操作
|
|
let running_mode = "NotRunning".to_string();
|
|
|
|
let is_admin = system::is_admin().unwrap_or_default();
|
|
|
|
Self {
|
|
system_name,
|
|
system_version,
|
|
system_kernel_version,
|
|
system_arch,
|
|
verge_version,
|
|
running_mode,
|
|
is_admin,
|
|
}
|
|
}
|
|
|
|
// 异步方法来获取完整的系统信息
|
|
pub fn new_sync() -> Self {
|
|
let mut info = Self::new();
|
|
|
|
let running_mode = CoreManager::global().get_running_mode();
|
|
info.running_mode = running_mode.to_string();
|
|
|
|
info
|
|
}
|
|
}
|