From 190adb1d52de1cb52e1e79ec48375a240dbf0bc0 Mon Sep 17 00:00:00 2001 From: Thoronium <107363768+NotThorny@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:10:22 -0600 Subject: [PATCH 1/4] Redirect more domains --- src-tauri/lang/en.json | 2 +- src-tauri/src/config.rs | 1 + src-tauri/src/main.rs | 5 +- src-tauri/src/proxy.rs | 97 ++++++++++++++++++++++++------ src/ui/components/menu/Options.tsx | 15 +++++ src/utils/configuration.ts | 2 + 6 files changed, 101 insertions(+), 21 deletions(-) diff --git a/src-tauri/lang/en.json b/src-tauri/lang/en.json index 10eef33..c10e504 100644 --- a/src-tauri/lang/en.json +++ b/src-tauri/lang/en.json @@ -9,7 +9,7 @@ "port_placeholder": "Port...", "files_downloading": "Files Downloading: ", "files_extracting": "Files Extracting: ", - "game_path_notify": "Game path not found, remember to set it in !" + "game_path_notify": "Game path not found, remember to set it in settings!" }, "options": { "enabled": "Enabled", diff --git a/src-tauri/src/config.rs b/src-tauri/src/config.rs index db8ef96..93c7214 100644 --- a/src-tauri/src/config.rs +++ b/src-tauri/src/config.rs @@ -26,6 +26,7 @@ pub struct Configuration { pub horny_mode: Option, pub auto_mongodb: Option, pub un_elevated: Option, + pub redirect_more: Option, } pub fn config_path() -> PathBuf { diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 945e2bc..a03706d 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -230,12 +230,11 @@ fn main() -> Result<(), ArgsError> { gamebanana::list_submissions, gamebanana::list_mods ]) - .on_window_event(|event| match event.event() { - tauri::WindowEvent::CloseRequested { api, .. } => { + .on_window_event(|event| { + if let tauri::WindowEvent::CloseRequested { .. } = event.event() { // Ensure all proxy stuff is handled disconnect(); } - _ => {} }) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index 3aa6666..b0e394a 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -3,6 +3,7 @@ * https://github.com/omjadas/hudsucker/blob/main/examples/log.rs */ +use crate::config::get_config; #[cfg(target_os = "linux")] use crate::system_helpers::run_command; @@ -60,24 +61,86 @@ impl HttpHandler for ProxyHandler { ) -> RequestOrResponse { let uri = req.uri().to_string(); - if uri.contains("hoyoverse.com") || uri.contains("mihoyo.com") || uri.contains("yuanshen.com") { - // Handle CONNECTs - if req.method().as_str() == "CONNECT" { - let builder = Response::builder() - .header("DecryptEndpoint", "Created") - .status(StatusCode::OK); - let res = builder.body(()).unwrap(); + match get_config().redirect_more { + Some(true) => { + if uri.contains("hoyoverse.com") + || uri.contains("mihoyo.com") + || uri.contains("yuanshen.com") + || uri.contains("starrails.com") + || uri.contains("bhsr.com") + || uri.contains("bh3.com") + || uri.contains("honkaiimpact3.com") + { + // Handle CONNECTs + if req.method().as_str() == "CONNECT" { + let builder = Response::builder() + .header("DecryptEndpoint", "Created") + .status(StatusCode::OK); + let res = builder.body(()).unwrap(); - // Respond to CONNECT - *res.body() - } else { - let uri_path_and_query = req.uri().path_and_query().unwrap().as_str(); - // Create new URI. - let new_uri = - Uri::from_str(format!("{}{}", SERVER.lock().unwrap(), uri_path_and_query).as_str()) - .unwrap(); - // Set request URI to the new one. - *req.uri_mut() = new_uri; + // Respond to CONNECT + *res.body() + } else { + let uri_path_and_query = req.uri().path_and_query().unwrap().as_str(); + // Create new URI. + let new_uri = + Uri::from_str(format!("{}{}", SERVER.lock().unwrap(), uri_path_and_query).as_str()) + .unwrap(); + // Set request URI to the new one. + *req.uri_mut() = new_uri; + } + } + } + Some(false) => { + if uri.contains("hoyoverse.com") + || uri.contains("mihoyo.com") + || uri.contains("yuanshen.com") + { + // Handle CONNECTs + if req.method().as_str() == "CONNECT" { + let builder = Response::builder() + .header("DecryptEndpoint", "Created") + .status(StatusCode::OK); + let res = builder.body(()).unwrap(); + + // Respond to CONNECT + *res.body() + } else { + let uri_path_and_query = req.uri().path_and_query().unwrap().as_str(); + // Create new URI. + let new_uri = + Uri::from_str(format!("{}{}", SERVER.lock().unwrap(), uri_path_and_query).as_str()) + .unwrap(); + // Set request URI to the new one. + *req.uri_mut() = new_uri; + } + } + } + // Use default as fallback + None => { + if uri.contains("hoyoverse.com") + || uri.contains("mihoyo.com") + || uri.contains("yuanshen.com") + { + // Handle CONNECTs + if req.method().as_str() == "CONNECT" { + let builder = Response::builder() + .header("DecryptEndpoint", "Created") + .status(StatusCode::OK); + let res = builder.body(()).unwrap(); + + // Respond to CONNECT + *res.body() + } else { + let uri_path_and_query = req.uri().path_and_query().unwrap().as_str(); + // Create new URI. + let new_uri = + Uri::from_str(format!("{}{}", SERVER.lock().unwrap(), uri_path_and_query).as_str()) + .unwrap(); + // Set request URI to the new one. + *req.uri_mut() = new_uri; + } + } } } diff --git a/src/ui/components/menu/Options.tsx b/src/ui/components/menu/Options.tsx index b0660ed..5d9c59f 100644 --- a/src/ui/components/menu/Options.tsx +++ b/src/ui/components/menu/Options.tsx @@ -42,6 +42,7 @@ interface IState { swag: boolean platform: string un_elevated: boolean + redirect_more: boolean // Swag stuff akebi_path: string @@ -72,6 +73,7 @@ export default class Options extends React.Component { auto_mongodb: false, platform: '', un_elevated: false, + redirect_more: false, // Swag stuff akebi_path: '', @@ -123,6 +125,7 @@ export default class Options extends React.Component { auto_mongodb: config.auto_mongodb || false, platform, un_elevated: config.un_elevated || false, + redirect_more: config.redirect_more || false, // Swag stuff akebi_path: config.akebi_path || '', @@ -388,6 +391,18 @@ export default class Options extends React.Component { /> + diff --git a/src/utils/configuration.ts b/src/utils/configuration.ts index 662c1ac..ad7b997 100644 --- a/src/utils/configuration.ts +++ b/src/utils/configuration.ts @@ -26,6 +26,7 @@ let defaultConfig: Configuration horny_mode: false, auto_mongodb: false, un_elevated: false, + redirect_more: false, } })() @@ -55,6 +56,7 @@ export interface Configuration { swag_mode?: boolean auto_mongodb: boolean un_elevated: boolean + redirect_more: boolean // Swag stuff akebi_path?: string From f7e33d50351b12abc1e4c5404d3ed89bfdf7f94a Mon Sep 17 00:00:00 2001 From: Thoronium <107363768+NotThorny@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:29:33 -0600 Subject: [PATCH 2/4] Update langs --- src-tauri/lang/chs.json | 3 ++- src-tauri/lang/cht.json | 3 ++- src-tauri/lang/de.json | 3 ++- src-tauri/lang/es.json | 3 ++- src-tauri/lang/fr.json | 3 ++- src-tauri/lang/id.json | 3 ++- src-tauri/lang/ko.json | 3 ++- src-tauri/lang/lv.json | 3 ++- src-tauri/lang/nl.json | 3 ++- src-tauri/lang/pt-br.json | 3 ++- src-tauri/lang/ru.json | 3 ++- src-tauri/lang/vi.json | 3 ++- 12 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src-tauri/lang/chs.json b/src-tauri/lang/chs.json index 7dca78e..fe6cf57 100644 --- a/src-tauri/lang/chs.json +++ b/src-tauri/lang/chs.json @@ -8,7 +8,8 @@ "ip_placeholder": "IP 地址...", "port_placeholder": "端口...", "files_downloading": "文件下载中:", - "files_extracting": "文件解压中:" + "files_extracting": "文件解压中:", + "game_path_notify": "未找到游戏路径,请记得在设置中进行设置" }, "options": { "enabled": "已启用", diff --git a/src-tauri/lang/cht.json b/src-tauri/lang/cht.json index b876b03..94740f3 100644 --- a/src-tauri/lang/cht.json +++ b/src-tauri/lang/cht.json @@ -8,7 +8,8 @@ "ip_placeholder": "IP地址...", "port_placeholder": "通訊埠...", "files_downloading": "檔案下載中:", - "files_extracting": "檔案解壓縮中:" + "files_extracting": "檔案解壓縮中:", + "game_path_notify": "找不到遊戲路徑,記得在設置裡設置!" }, "options": { "enabled": "已啟用", diff --git a/src-tauri/lang/de.json b/src-tauri/lang/de.json index 79bf527..bd96931 100644 --- a/src-tauri/lang/de.json +++ b/src-tauri/lang/de.json @@ -8,7 +8,8 @@ "ip_placeholder": "Server Adresse...", "port_placeholder": "Port...", "files_downloading": "Herunterladen von Dateien: ", - "files_extracting": "Extrahieren von Dateien: " + "files_extracting": "Extrahieren von Dateien: ", + "game_path_notify": "Spielpfad nicht gefunden, denken Sie daran, ihn in den Einstellungen festzulegen!" }, "options": { "enabled": "Aktiviert", diff --git a/src-tauri/lang/es.json b/src-tauri/lang/es.json index ec6a340..2175c8c 100644 --- a/src-tauri/lang/es.json +++ b/src-tauri/lang/es.json @@ -8,7 +8,8 @@ "ip_placeholder": "Dirección del servidor...", "port_placeholder": "Puerto...", "files_downloading": "Archivos Descargandose: ", - "files_extracting": "Archivos Extrayendose: " + "files_extracting": "Archivos Extrayendose: ", + "game_path_notify": "Ruta de juego no encontrada, ¡recuerda configurarla en ajustes!" }, "options": { "enabled": "Activado", diff --git a/src-tauri/lang/fr.json b/src-tauri/lang/fr.json index f31083b..4669804 100644 --- a/src-tauri/lang/fr.json +++ b/src-tauri/lang/fr.json @@ -8,7 +8,8 @@ "ip_placeholder": "Adresse du serveur...", "port_placeholder": "Port...", "files_downloading": "Fichiers en cours de telechargement: ", - "files_extracting": "Fichiers en cours d'extraction: " + "files_extracting": "Fichiers en cours d'extraction: ", + "game_path_notify": "Chemin d'accès au jeu non trouvé, n'oubliez pas de le définir dans les options !" }, "options": { "enabled": "Activé", diff --git a/src-tauri/lang/id.json b/src-tauri/lang/id.json index 5d39ca8..3225173 100644 --- a/src-tauri/lang/id.json +++ b/src-tauri/lang/id.json @@ -7,7 +7,8 @@ "ip_placeholder": "Alamat Server...", "port_placeholder": "Port...", "files_downloading": "Mendownload File Yang Diperlukan: ", - "files_extracting": "MengExtract File: " + "files_extracting": "MengExtract File: ", + "game_path_notify": "Jalur permainan tidak ditemukan, ingatlah untuk mengaturnya dalam pengaturan!" }, "options": { "enabled": "Diaktifkan", diff --git a/src-tauri/lang/ko.json b/src-tauri/lang/ko.json index 9c59706..e22d6cb 100644 --- a/src-tauri/lang/ko.json +++ b/src-tauri/lang/ko.json @@ -8,7 +8,8 @@ "ip_placeholder": "서버 주소", "port_placeholder": "포트", "files_downloading": "파일 다운로드 중: ", - "files_extracting": "파일 추출 중: " + "files_extracting": "파일 추출 중: ", + "game_path_notify": "게임 경로를 찾을 수 없습니다. 설정에서 설정하는 것을 잊지 마세요!" }, "options": { "enabled": "활성", diff --git a/src-tauri/lang/lv.json b/src-tauri/lang/lv.json index 78a6c9d..ca85469 100644 --- a/src-tauri/lang/lv.json +++ b/src-tauri/lang/lv.json @@ -8,7 +8,8 @@ "ip_placeholder": "Servera Adrese...", "port_placeholder": "Ports...", "files_downloading": "Failu Lejupielāde: ", - "files_extracting": "Failu Izvilkšana: " + "files_extracting": "Failu Izvilkšana: ", + "game_path_notify": "Spēles ceļš nav atrasts, atcerieties to iestatījumos!" }, "options": { "enabled": "Iespējots", diff --git a/src-tauri/lang/nl.json b/src-tauri/lang/nl.json index 284784e..cb5dfc0 100644 --- a/src-tauri/lang/nl.json +++ b/src-tauri/lang/nl.json @@ -8,7 +8,8 @@ "ip_placeholder": "Server Address...", "port_placeholder": "Poort...", "files_downloading": "Bestanden Aan Downloaden: ", - "files_extracting": "Bestanden Uitpakken: " + "files_extracting": "Bestanden Uitpakken: ", + "game_path_notify": "Spelpad niet gevonden, denk eraan dit in te stellen in instellingen!" }, "options": { "enabled": "Ingeschakeld", diff --git a/src-tauri/lang/pt-br.json b/src-tauri/lang/pt-br.json index 62b21fc..41b7367 100644 --- a/src-tauri/lang/pt-br.json +++ b/src-tauri/lang/pt-br.json @@ -8,7 +8,8 @@ "ip_placeholder": "Endereço do Servidor...", "port_placeholder": "Porta...", "files_downloading": "Baixando Arquivos: ", - "files_extracting": "Extraindo Arquivos: " + "files_extracting": "Extraindo Arquivos: ", + "game_path_notify": "Caminho do jogo não encontrado, lembre-se de defini-lo nas configurações!" }, "options": { "enabled": "Habilitado", diff --git a/src-tauri/lang/ru.json b/src-tauri/lang/ru.json index 774cc35..24b8a48 100644 --- a/src-tauri/lang/ru.json +++ b/src-tauri/lang/ru.json @@ -8,7 +8,8 @@ "ip_placeholder": "Айпи адрес...", "port_placeholder": "Порт...", "files_downloading": "Файлов скачано: ", - "files_extracting": "Извлечено файлов: " + "files_extracting": "Извлечено файлов: ", + "game_path_notify": "Путь к игре не найден, не забудьте установить его в настройках!" }, "options": { "enabled": "Включено", diff --git a/src-tauri/lang/vi.json b/src-tauri/lang/vi.json index 7ed7143..7faa4bd 100644 --- a/src-tauri/lang/vi.json +++ b/src-tauri/lang/vi.json @@ -8,7 +8,8 @@ "ip_placeholder": "Địa chỉ máy chủ...", "port_placeholder": "Cổng...", "files_downloading": "Đang tải tập tin: ", - "files_extracting": "Đang giải nén tập tin: " + "files_extracting": "Đang giải nén tập tin: ", + "game_path_notify": "Không tìm thấy đường dẫn trò chơi, hãy nhớ đặt nó trong cài đặt!" }, "options": { "enabled": "Bật", From f6856431bd7c2dbbf372baa914b712ed6bd96426 Mon Sep 17 00:00:00 2001 From: Thoronium <107363768+NotThorny@users.noreply.github.com> Date: Sun, 18 Jun 2023 16:46:03 -0600 Subject: [PATCH 3/4] Update langs pt.2 --- src-tauri/lang/chs.json | 3 ++- src-tauri/lang/cht.json | 3 ++- src-tauri/lang/de.json | 3 ++- src-tauri/lang/en.json | 3 ++- src-tauri/lang/es.json | 3 ++- src-tauri/lang/fr.json | 3 ++- src-tauri/lang/id.json | 3 ++- src-tauri/lang/ko.json | 3 ++- src-tauri/lang/lv.json | 3 ++- src-tauri/lang/nl.json | 3 ++- src-tauri/lang/pt-br.json | 3 ++- src-tauri/lang/ru.json | 3 ++- src-tauri/lang/vi.json | 3 ++- src-tauri/src/proxy.rs | 1 + 14 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src-tauri/lang/chs.json b/src-tauri/lang/chs.json index fe6cf57..7248992 100644 --- a/src-tauri/lang/chs.json +++ b/src-tauri/lang/chs.json @@ -31,7 +31,8 @@ "wipe_login": "清除登录缓存", "horny_mode": "Horny 模式", "auto_mongodb": "自动启动 MongoDB", - "un_elevated": "非提升运行游戏(无管理员)" + "un_elevated": "非提升运行游戏(无管理员)", + "redirect_more": "还可以重定向其他MHY游戏" }, "downloads": { "grasscutter_fullbuild": "下载 Grasscutter 一体化", diff --git a/src-tauri/lang/cht.json b/src-tauri/lang/cht.json index 94740f3..b7e28ef 100644 --- a/src-tauri/lang/cht.json +++ b/src-tauri/lang/cht.json @@ -31,7 +31,8 @@ "wipe_login": "擦除登錄緩存", "horny_mode": "Horny模式", "auto_mongodb": "自動啟動 MongoDB", - "un_elevated": "在不升高的情况下运行游戏(没有管理员)。" + "un_elevated": "在不升高的情况下运行游戏(没有管理员)。", + "redirect_more": "同時重定向其他 MHY 遊戲" }, "downloads": { "grasscutter_fullbuild": "下載Grasscutter多合一下載", diff --git a/src-tauri/lang/de.json b/src-tauri/lang/de.json index bd96931..5b271e6 100644 --- a/src-tauri/lang/de.json +++ b/src-tauri/lang/de.json @@ -30,7 +30,8 @@ "wipe_login": "Wis de inlogcache", "horny_mode": "Geile modus", "auto_mongodb": "Start automatisch MongoDB", - "un_elevated": "Führen Sie das Spiel nicht erhöht aus (kein Admin)" + "un_elevated": "Führen Sie das Spiel nicht erhöht aus (kein Admin)", + "redirect_more": "Leiten Sie auch andere MHY-Spiele um" }, "downloads": { "grasscutter_fullbuild": "Alles in Einem Grasscutter Daten herunterladen", diff --git a/src-tauri/lang/en.json b/src-tauri/lang/en.json index c10e504..18a87a2 100644 --- a/src-tauri/lang/en.json +++ b/src-tauri/lang/en.json @@ -31,7 +31,8 @@ "wipe_login": "Wipe Login Cache", "horny_mode": "Horny Mode", "auto_mongodb": "Automatically Start MongoDB", - "un_elevated": "Run the game non-elevated (no admin)" + "un_elevated": "Run the game non-elevated (no admin)", + "redirect_more": "Also redirect other MHY games" }, "downloads": { "grasscutter_fullbuild": "Download Grasscutter All-in-One", diff --git a/src-tauri/lang/es.json b/src-tauri/lang/es.json index 2175c8c..3668450 100644 --- a/src-tauri/lang/es.json +++ b/src-tauri/lang/es.json @@ -31,7 +31,8 @@ "wipe_login": "Borrar caché de inicio de sesión", "horny_mode": "Modo cachondo", "auto_mongodb": "Iniciar automáticamente MongoDB", - "un_elevated": "Ejecutar el juego no elevado (no admin)" + "un_elevated": "Ejecutar el juego no elevado (no admin)", + "redirect_more": "También redirigir otros juegos MHY" }, "downloads": { "grasscutter_fullbuild": "Descargar Datos todo en uno de Grasscutter", diff --git a/src-tauri/lang/fr.json b/src-tauri/lang/fr.json index 4669804..4aa1c88 100644 --- a/src-tauri/lang/fr.json +++ b/src-tauri/lang/fr.json @@ -31,7 +31,8 @@ "wipe_login": "Effacer le cache de connexion", "horny_mode": "Mode horny", "auto_mongodb": "Démarrer automatiquement MongoDB", - "un_elevated": "Exécuter le jeu sans élévation (pas d'administrateur)" + "un_elevated": "Exécuter le jeu sans élévation (pas d'administrateur)", + "redirect_more": "Réorienter également les autres jeux MHY" }, "downloads": { "grasscutter_fullbuild": "Telecharger Grasscutter tout-en-un", diff --git a/src-tauri/lang/id.json b/src-tauri/lang/id.json index 3225173..a28dedc 100644 --- a/src-tauri/lang/id.json +++ b/src-tauri/lang/id.json @@ -30,7 +30,8 @@ "wipe_login": "Menghapus Cache Login", "horny_mode": "Mode Terangsang", "auto_mongodb": "Mulai MongoDB secara otomatis", - "un_elevated": "Jalankan game yang tidak ditinggikan (tanpa admin)" + "un_elevated": "Jalankan game yang tidak ditinggikan (tanpa admin)", + "redirect_more": "Juga mengarahkan ulang game MHY lainnya" }, "downloads": { "grasscutter_fullbuild": "Sedang Mendownload Grasscutter Semua Dalam Satu", diff --git a/src-tauri/lang/ko.json b/src-tauri/lang/ko.json index e22d6cb..0411497 100644 --- a/src-tauri/lang/ko.json +++ b/src-tauri/lang/ko.json @@ -31,7 +31,8 @@ "wipe_login": "로그인 캐시 지우기", "horny_mode": "Horny 모드", "auto_mongodb": "MongoDB 자동 시작", - "un_elevated": "게임 비상승 실행(관리자 없음)" + "un_elevated": "게임 비상승 실행(관리자 없음)", + "redirect_more": "다른 MHY 게임도 리디렉션" }, "downloads": { "grasscutter_fullbuild": "올인원 Grasscutter 다운로드", diff --git a/src-tauri/lang/lv.json b/src-tauri/lang/lv.json index ca85469..a383b29 100644 --- a/src-tauri/lang/lv.json +++ b/src-tauri/lang/lv.json @@ -29,7 +29,8 @@ "wipe_login": "Noslaucīt pieteikšanās kešatmiņu", "horny_mode": "Uzbudināts režīms", "auto_mongodb": "Automātiski startējiet MongoDB", - "un_elevated": "Palaist spēli bez paaugstinājuma (bez administratora)" + "un_elevated": "Palaist spēli bez paaugstinājuma (bez administratora)", + "redirect_more": "Arī novirzīt citas MHY spēles" }, "downloads": { "grasscutter_fullbuild": "Lejupielādējiet Grasscutter viss vienā", diff --git a/src-tauri/lang/nl.json b/src-tauri/lang/nl.json index cb5dfc0..34eed1c 100644 --- a/src-tauri/lang/nl.json +++ b/src-tauri/lang/nl.json @@ -30,7 +30,8 @@ "wipe_login": "Login cache wissen", "horny_mode": "Geile modus", "auto_mongodb": "Start automatisch MongoDB", - "un_elevated": "Voer het spel uit zonder hoogtevrees (geen admin)" + "un_elevated": "Voer het spel uit zonder hoogtevrees (geen admin)", + "redirect_more": "Richt ook andere MHY-spellen" }, "downloads": { "grasscutter_fullbuild": "Grasscutter Alles-in-één Downloaden", diff --git a/src-tauri/lang/pt-br.json b/src-tauri/lang/pt-br.json index 41b7367..79a9fb9 100644 --- a/src-tauri/lang/pt-br.json +++ b/src-tauri/lang/pt-br.json @@ -31,7 +31,8 @@ "wipe_login": "Limpar Cache de Login", "horny_mode": "Modo com tesão", "auto_mongodb": "Iniciar MongoDB Automaticamente", - "un_elevated": "Executar o jogo não-elevated (sem admin)" + "un_elevated": "Executar o jogo não-elevated (sem admin)", + "redirect_more": "Também redirecionar outros jogos MHY" }, "downloads": { "grasscutter_fullbuild": "Baixar o Grasscutter Tudo-em-Um", diff --git a/src-tauri/lang/ru.json b/src-tauri/lang/ru.json index 24b8a48..ee769cc 100644 --- a/src-tauri/lang/ru.json +++ b/src-tauri/lang/ru.json @@ -30,7 +30,8 @@ "wipe_login": "Очистить кэш входа в систему", "horny_mode": "роговой режим", "auto_mongodb": "Автоматически запускать MongoDB", - "un_elevated": "Запустите игру в неэлегантном режиме (без администратора)" + "un_elevated": "Запустите игру в неэлегантном режиме (без администратора)", + "redirect_more": "Также перенаправьте другие игры MHY" }, "downloads": { "grasscutter_fullbuild": "Скачать все в одном Grasscutter", diff --git a/src-tauri/lang/vi.json b/src-tauri/lang/vi.json index 7faa4bd..73649d0 100644 --- a/src-tauri/lang/vi.json +++ b/src-tauri/lang/vi.json @@ -31,7 +31,8 @@ "wipe_login": "Tẩy sạch cache đăng nhập", "horny_mode": "Chế độ hứng tình", "auto_mongodb": "Tự động khởi động MongoDB", - "un_elevated": "Chạy trò chơi không nâng cao (không có quản trị viên)" + "un_elevated": "Chạy trò chơi không nâng cao (không có quản trị viên)", + "redirect_more": "Đồng thời chuyển hướng các trò chơi MHY khác" }, "downloads": { "grasscutter_fullbuild": "Tải Grasscutter tất cả trong một", diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index b0e394a..765196f 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -70,6 +70,7 @@ impl HttpHandler for ProxyHandler { || uri.contains("bhsr.com") || uri.contains("bh3.com") || uri.contains("honkaiimpact3.com") + || uri.contains("zenlesszonezero.com") { // Handle CONNECTs if req.method().as_str() == "CONNECT" { From 6b07ccf1b51adcbf2e0cfab7170ac92e8edf9012 Mon Sep 17 00:00:00 2001 From: Thoronium <107363768+NotThorny@users.noreply.github.com> Date: Sun, 18 Jun 2023 21:30:26 -0600 Subject: [PATCH 4/4] Add CLI flag --- src-tauri/src/main.rs | 6 ++++++ src-tauri/src/proxy.rs | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) 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")