diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a03706d..45a9b50 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -49,6 +49,7 @@ async fn parse_args(inp: &Vec) -> Result { args.flag("h", "help", "Print various CLI args"); args.flag("p", "proxy", "Start the proxy server"); args.flag("G", "launch-game", "Launch the game"); + args.flag("o", "other-redirects", "Redirect other certain anime games"); args.flag( "A", "no-admin", @@ -142,6 +143,10 @@ async fn parse_args(inp: &Vec) -> Result { pathbuf.push("cultivation"); pathbuf.push("ca"); + if args.value_of("other_redirects")? { + proxy::set_redirect_more(); + } + connect(8035, pathbuf.to_str().unwrap().to_string()).await; } @@ -207,6 +212,7 @@ fn main() -> Result<(), ArgsError> { system_helpers::run_un_elevated, proxy::set_proxy_addr, proxy::generate_ca_files, + proxy::set_redirect_more, release::get_latest_release, unzip::unzip, file_helpers::rename, diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index 765196f..a8d97e3 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -36,6 +36,7 @@ async fn shutdown_signal() { // Global ver for getting server address. static SERVER: Lazy> = Lazy::new(|| Mutex::new("http://localhost:443".to_string())); +static REDIRECT_MORE: Lazy> = Lazy::new(|| Mutex::new(false)); #[derive(Clone)] struct ProxyHandler; @@ -52,6 +53,11 @@ pub fn set_proxy_addr(addr: String) { println!("Set server to {}", SERVER.lock().unwrap()); } +#[tauri::command] +pub fn set_redirect_more() { + *REDIRECT_MORE.lock().unwrap() = true; +} + #[async_trait] impl HttpHandler for ProxyHandler { async fn handle_request( @@ -61,7 +67,13 @@ impl HttpHandler for ProxyHandler { ) -> RequestOrResponse { let uri = req.uri().to_string(); - match get_config().redirect_more { + let mut more = get_config().redirect_more; + + if *REDIRECT_MORE.lock().unwrap() { + more = Some(true); + } + + match more { Some(true) => { if uri.contains("hoyoverse.com") || uri.contains("mihoyo.com")