chore: cleanup commands, fix osu folder check
This commit is contained in:
+20
-43
@@ -56,18 +56,12 @@ pub fn valid_osu_folder(folder: String) -> bool {
|
|||||||
"scores.db",
|
"scores.db",
|
||||||
];
|
];
|
||||||
|
|
||||||
let folder_files: Vec<&str> = osu_folder_files.iter().map(|&s| s).collect();
|
|
||||||
if folder_files.iter().any(|&file| file == "osu!.exe") == false {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = PathBuf::from(folder);
|
let path = PathBuf::from(folder);
|
||||||
let match_percentage = check_folder_completeness(path, &osu_folder_files) >= 70.0;
|
if !path.join("osu!.exe").exists() {
|
||||||
if match_percentage {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
check_folder_completeness(path, &osu_folder_files) >= 70.0
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(not(windows))]
|
#[cfg(not(windows))]
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
@@ -222,28 +216,28 @@ pub async fn get_skins_count(folder: String) -> Option<u64> {
|
|||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn get_osu_skin(folder: String) -> String {
|
pub fn get_osu_skin(folder: String) -> String {
|
||||||
let path = PathBuf::from(folder);
|
let path = PathBuf::from(folder);
|
||||||
let osu_user_config = get_osu_user_config(path.clone());
|
let osu_user_config = get_osu_user_config(path);
|
||||||
return osu_user_config
|
osu_user_config
|
||||||
.and_then(|config| config.get("Skin").cloned())
|
.and_then(|config| config.get("Skin").cloned())
|
||||||
.unwrap_or_else(|| "Default".to_string());
|
.unwrap_or_else(|| "Default".to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn get_osu_version(folder: String) -> String {
|
pub fn get_osu_version(folder: String) -> String {
|
||||||
let path = PathBuf::from(folder);
|
let path = PathBuf::from(folder);
|
||||||
let osu_user_config = get_osu_user_config(path.clone());
|
let osu_user_config = get_osu_user_config(path);
|
||||||
return osu_user_config
|
osu_user_config
|
||||||
.and_then(|config| config.get("LastVersion").cloned())
|
.and_then(|config| config.get("LastVersion").cloned())
|
||||||
.unwrap_or_else(|| "failed".to_string());
|
.unwrap_or_else(|| "failed".to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn get_osu_release_stream(folder: String) -> String {
|
pub fn get_osu_release_stream(folder: String) -> String {
|
||||||
let path = PathBuf::from(folder);
|
let path = PathBuf::from(folder);
|
||||||
let osu_config = get_osu_config(path.clone());
|
let osu_config = get_osu_config(path);
|
||||||
return osu_config
|
osu_config
|
||||||
.and_then(|config| config.get("_ReleaseStream").cloned())
|
.and_then(|config| config.get("_ReleaseStream").cloned())
|
||||||
.unwrap_or_else(|| "Stable40".to_string());
|
.unwrap_or_else(|| "Stable40".to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(serde::Deserialize)]
|
#[derive(serde::Deserialize)]
|
||||||
@@ -261,10 +255,7 @@ pub fn set_osu_user_config_values(
|
|||||||
.iter()
|
.iter()
|
||||||
.map(|entry| (entry.key.as_str(), Some(entry.value.as_str())))
|
.map(|entry| (entry.key.as_str(), Some(entry.value.as_str())))
|
||||||
.collect();
|
.collect();
|
||||||
match set_osu_user_config_vals(&osu_folder_path, &converted) {
|
Ok(set_osu_user_config_vals(&osu_folder_path, &converted).is_ok())
|
||||||
Ok(_) => Ok(true),
|
|
||||||
Err(_) => Ok(false),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
@@ -276,22 +267,16 @@ pub fn set_osu_config_values(
|
|||||||
.iter()
|
.iter()
|
||||||
.map(|entry| (entry.key.as_str(), Some(entry.value.as_str())))
|
.map(|entry| (entry.key.as_str(), Some(entry.value.as_str())))
|
||||||
.collect();
|
.collect();
|
||||||
match set_osu_config_vals(&osu_folder_path, &converted) {
|
Ok(set_osu_config_vals(&osu_folder_path, &converted).is_ok())
|
||||||
Ok(_) => Ok(true),
|
|
||||||
Err(_) => Ok(false),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn run_osu_updater(folder: String) -> Result<(), String> {
|
pub async fn run_osu_updater(folder: String) -> Result<(), String> {
|
||||||
#[cfg(windows)]
|
|
||||||
const DETACHED_PROCESS: u32 = 0x00000008;
|
|
||||||
#[cfg(windows)]
|
|
||||||
const CREATE_NEW_PROCESS_GROUP: u32 = 0x00000200;
|
|
||||||
|
|
||||||
let mut updater_process = {
|
let mut updater_process = {
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
{
|
{
|
||||||
|
const DETACHED_PROCESS: u32 = 0x00000008;
|
||||||
|
const CREATE_NEW_PROCESS_GROUP: u32 = 0x00000200;
|
||||||
let osu_exe_path = PathBuf::from(&folder).join("osu!.exe");
|
let osu_exe_path = PathBuf::from(&folder).join("osu!.exe");
|
||||||
Command::new(&osu_exe_path)
|
Command::new(&osu_exe_path)
|
||||||
.arg("-repair")
|
.arg("-repair")
|
||||||
@@ -368,9 +353,6 @@ pub async fn run_osu_updater(folder: String) -> Result<(), String> {
|
|||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn run_osu(folder: String, patch: bool) -> Result<(), String> {
|
pub async fn run_osu(folder: String, patch: bool) -> Result<(), String> {
|
||||||
/* #[cfg(windows)]
|
|
||||||
use std::os::windows::process::CommandExt; */
|
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
const DETACHED_PROCESS: u32 = 0x00000008;
|
const DETACHED_PROCESS: u32 = 0x00000008;
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
@@ -385,7 +367,7 @@ pub async fn run_osu(folder: String, patch: bool) -> Result<(), String> {
|
|||||||
.arg("ez-pp.farm")
|
.arg("ez-pp.farm")
|
||||||
.creation_flags(DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
|
.creation_flags(DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
|
||||||
.spawn()
|
.spawn()
|
||||||
.map_err(|e| format!("Failed to spawn updater: {}", e))?
|
.map_err(|e| format!("Failed to spawn osu: {}", e))?
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(windows))]
|
#[cfg(not(windows))]
|
||||||
@@ -394,7 +376,7 @@ pub async fn run_osu(folder: String, patch: bool) -> Result<(), String> {
|
|||||||
.arg("--devserver")
|
.arg("--devserver")
|
||||||
.arg("ez-pp.farm")
|
.arg("ez-pp.farm")
|
||||||
.spawn()
|
.spawn()
|
||||||
.map_err(|e| format!("Failed to spawn updater: {}", e))?
|
.map_err(|e| format!("Failed to spawn osu: {}", e))?
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -732,12 +714,7 @@ pub async fn has_net8() -> bool {
|
|||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn encrypt_string(string: String, entropy: String) -> String {
|
pub fn encrypt_string(string: String, entropy: String) -> String {
|
||||||
let encrypted = encrypt_password(&string, &entropy);
|
encrypt_password(&string, &entropy).unwrap_or(string)
|
||||||
|
|
||||||
match encrypted {
|
|
||||||
Ok(encrypted_vec) => encrypted_vec,
|
|
||||||
Err(_) => string,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
@@ -773,7 +750,7 @@ pub async fn download_ezpp_launcher_update(app: AppHandle, url: String) -> Resul
|
|||||||
UpdateStatus {
|
UpdateStatus {
|
||||||
file_name: "Update".to_string(),
|
file_name: "Update".to_string(),
|
||||||
downloaded,
|
downloaded,
|
||||||
size: size,
|
size,
|
||||||
progress: ((downloaded as f64 / size as f64 * 100.0) * 100.0).trunc() / 100.0,
|
progress: ((downloaded as f64 / size as f64 * 100.0) * 100.0).trunc() / 100.0,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user