From 4461deecfed3c9563827de5b875a71f51e4f1990 Mon Sep 17 00:00:00 2001 From: mtkennerly Date: Mon, 22 Apr 2024 13:57:13 -0400 Subject: [PATCH] Ignore case for filtering and map another Steam Cloud root --- data/manifest.yaml | 12 ++++-------- data/missing.md | 1 - src/path.rs | 12 ++++++++---- src/steam.rs | 1 + 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/data/manifest.yaml b/data/manifest.yaml index e777eedf..d738f39f 100644 --- a/data/manifest.yaml +++ b/data/manifest.yaml @@ -627219,10 +627219,6 @@ The Legend of Crystal Valley: "/userData": when: - store: steam - "/Library/Application Support/userData": - when: - - os: mac - store: steam installDir: The Legend of Crystal Valley: {} launch: @@ -631226,6 +631222,10 @@ The Missing Few: steam: id: 842910 The Mobius Machine: + files: + "/Documents/The Mobius Machine/Saves": + when: + - store: steam installDir: The Mobius Machine: {} launch: @@ -641284,10 +641284,6 @@ The Technician: when: - os: windows store: steam - "/Library/Application Support/UserData//**/*.json": - when: - - os: mac - store: steam installDir: The Technician: {} steam: diff --git a/data/missing.md b/data/missing.md index 25e176a0..b3575bf6 100644 --- a/data/missing.md +++ b/data/missing.md @@ -26011,7 +26011,6 @@ * [The Misfits](https://www.pcgamingwiki.com/wiki/?curid=104797) * [The Miskatonic](https://www.pcgamingwiki.com/wiki/?curid=100230) * [The Missing Few](https://www.pcgamingwiki.com/wiki/?curid=157259) -* [The Mobius Machine](https://www.pcgamingwiki.com/wiki/?curid=189831) * [The Momo Game](https://www.pcgamingwiki.com/wiki/?curid=121537) * [The Monster](https://www.pcgamingwiki.com/wiki/?curid=121300) * [The Monster Breeder](https://www.pcgamingwiki.com/wiki/?curid=154367) diff --git a/src/path.rs b/src/path.rs index baa28601..59d2dfb4 100644 --- a/src/path.rs +++ b/src/path.rs @@ -55,6 +55,8 @@ pub fn normalize(path: &str) -> String { fn too_broad(path: &str) -> bool { use placeholder::{BASE, HOME, ROOT, STORE_USER_ID, WIN_APP_DATA, WIN_DIR, WIN_DOCUMENTS, XDG_CONFIG, XDG_DATA}; + let path_lower = path.to_lowercase(); + for item in placeholder::ALL { if path == *item { return true; @@ -80,6 +82,7 @@ fn too_broad(path: &str) -> bool { format!("{HOME}/AppData/Roaming"), format!("{HOME}/Documents/My Games"), format!("{HOME}/Library/Application Support"), + format!("{HOME}/Library/Application Support/UserData"), format!("{HOME}/Library/Preferences"), format!("{HOME}/.renpy"), format!("{HOME}/Library/RenPy"), @@ -95,10 +98,11 @@ fn too_broad(path: &str) -> bool { "C:/Program Files".to_string(), "C:/Program Files (x86)".to_string(), ] { - if path == item - || path.starts_with(&format!("{item}/*")) - || path.starts_with(&format!("{item}/{STORE_USER_ID}")) - || path.starts_with(&format!("{item}/SavesDir")) + let item = item.to_lowercase(); + if path_lower == item + || path_lower.starts_with(&format!("{item}/*")) + || path_lower.starts_with(&format!("{item}/{}", STORE_USER_ID.to_lowercase())) + || path_lower.starts_with(&format!("{item}/savesdir")) { return true; } diff --git a/src/steam.rs b/src/steam.rs index d2aabde3..623c147f 100644 --- a/src/steam.rs +++ b/src/steam.rs @@ -517,6 +517,7 @@ pub fn parse_root(value: &str) -> Option<&'static str> { "winappdataroaming" => Some(placeholder::WIN_APP_DATA), "winappdatalocal" => Some(placeholder::WIN_LOCAL_APP_DATA), "winappdatalocallow" => Some("/AppData/LocalLow"), + "windowshome" => Some(placeholder::HOME), "winmydocuments" => Some(placeholder::WIN_DOCUMENTS), "winsavedgames" => Some("/Saved Games"), _ => {