From d132d15c21cb24330e4cd2e536388e3f1de0c2a5 Mon Sep 17 00:00:00 2001 From: mtkennerly Date: Sun, 21 Apr 2024 19:49:20 -0400 Subject: [PATCH] Mark some more paths as too broad --- data/manifest.yaml | 29 ----------------------------- data/missing.md | 2 ++ src/manifest.rs | 2 +- src/path.rs | 28 +++++++++++++++++++--------- 4 files changed, 22 insertions(+), 39 deletions(-) diff --git a/data/manifest.yaml b/data/manifest.yaml index 19ee6c6b..1afaeb8c 100644 --- a/data/manifest.yaml +++ b/data/manifest.yaml @@ -19640,11 +19640,6 @@ After the End: tags: - config "After the End: The Harvest": - files: - "/C:/Program Files (x86)/Steam/steamapps/common/After The End The Harvest/**/*.rvdata2": - when: - - os: windows - store: steam installDir: After The End The Harvest: {} launch: @@ -71018,10 +71013,6 @@ Biorhythm: steam: id: 1033340 Bios Ex - Yami no Wakusei: - files: - "/D:/Games ISO/GamePC/Steam/SteamApps/common/Bios Ex/game/saves/*.save": - when: - - store: steam installDir: Bios Ex: {} launch: @@ -90723,22 +90714,10 @@ Bud Spencer & Terence Hill - Slaps and Beans: id: 564050 "Bud Spencer & Terence Hill: Slaps and Beans 2": files: - "/AppData/LocalLow/TrinityTeam/SnB2/**/*:*": - when: - - os: windows - store: steam "/Library/Application Support/TrinityTeam/SnB2/**/**": when: - os: mac store: steam - "/unity3d/**/*.*": - when: - - os: linux - store: steam - "/unity3d/**/*.*": - when: - - os: linux - store: steam installDir: Bud Spencer & Terence Hill - Slaps And Beans 2: {} launch: @@ -254799,10 +254778,6 @@ Ginga Kagekidan - 放課後くるーずっ!: "/AppData/LocalLow/Drakhar Studio/Ginger_ Beyond the Crystal/*.prefs": when: - store: steam - "/Library/Application Support/unity.Drakhar Studio.Ginger: Beyond the Crystal/*.prefs": - when: - - os: mac - store: steam installDir: Ginger Beyond the Crystal: {} launch: @@ -348016,10 +347991,6 @@ Liberté: "/AppData/LocalLow/Superstatic/Liberte/Save": when: - store: steam - "/deck/.local/share/Steam/steamapps/compatdata/1590160/pfx/dosdevices/c:/users/steamuser/AppData/LocalLow/Superstatic/Liberte/Save": - when: - - os: linux - store: steam gog: id: 1355106030 installDir: diff --git a/data/missing.md b/data/missing.md index 84f59f25..857204d4 100644 --- a/data/missing.md +++ b/data/missing.md @@ -772,6 +772,7 @@ * [After Rain: Phoenix Rise](https://www.pcgamingwiki.com/wiki/?curid=69749) * [After Reset RPG](https://www.pcgamingwiki.com/wiki/?curid=48497) * [After the Empire](https://www.pcgamingwiki.com/wiki/?curid=60227) +* [After the End: The Harvest](https://www.pcgamingwiki.com/wiki/?curid=47297) * [After the Fall](https://www.pcgamingwiki.com/wiki/?curid=140514) * [After the Inferno](https://www.pcgamingwiki.com/wiki/?curid=180244) * [After The Suns](https://www.pcgamingwiki.com/wiki/?curid=139035) @@ -2881,6 +2882,7 @@ * [Bionic Hunter VR](https://www.pcgamingwiki.com/wiki/?curid=153786) * [BionicBlitz](https://www.pcgamingwiki.com/wiki/?curid=128134) * [Bionite: Origins](https://www.pcgamingwiki.com/wiki/?curid=45146) +* [Bios Ex - Yami no Wakusei](https://www.pcgamingwiki.com/wiki/?curid=128708) * [Biosupremacy](https://www.pcgamingwiki.com/wiki/?curid=58914) * [BIOSZARD Corporation](https://www.pcgamingwiki.com/wiki/?curid=130297) * [Biotix: Phage Genesis](https://www.pcgamingwiki.com/wiki/?curid=91126) diff --git a/src/manifest.rs b/src/manifest.rs index 70a38611..660894f8 100644 --- a/src/manifest.rs +++ b/src/manifest.rs @@ -270,7 +270,7 @@ impl Game { fn add_file_constraint(&mut self, path: String, constraint: GameFileConstraint) { let path = path::normalize(&path); - if path::usable(&path) { + if path::usable(&path) && !path.contains(':') { self.files.entry(path).or_default().when.insert(constraint); } } diff --git a/src/path.rs b/src/path.rs index c5c462d6..f93a6155 100644 --- a/src/path.rs +++ b/src/path.rs @@ -47,17 +47,17 @@ pub fn normalize(path: &str) -> String { } pub fn too_broad(path: &str) -> bool { - use placeholder::{BASE, HOME, ROOT, STORE_USER_ID, WIN_DIR, WIN_DOCUMENTS}; + use placeholder::{BASE, HOME, ROOT, STORE_USER_ID, WIN_DIR, WIN_DOCUMENTS, XDG_CONFIG, XDG_DATA}; - for placeholder in placeholder::ALL { - if path == *placeholder { + for item in placeholder::ALL { + if path == *item { return true; } } // These paths are present whether or not the game is installed. // If possible, they should be narrowed down on the wiki. - let broad = vec![ + for item in [ format!("{BASE}/{STORE_USER_ID}"), // because `` is handled as `*` format!("{HOME}/Documents"), format!("{HOME}/Saved Games"), @@ -75,15 +75,25 @@ pub fn too_broad(path: &str) -> bool { format!("{WIN_DIR}/SysWOW64"), format!("{WIN_DOCUMENTS}/My Games"), format!("{WIN_DOCUMENTS}/Telltale Games"), + format!("{XDG_CONFIG}/unity3d"), + format!("{XDG_DATA}/unity3d"), "C:/Program Files".to_string(), - ]; - if broad.iter().any(|x| *x == path) { - return true; + "C:/Program Files (x86)".to_string(), + ] { + if path == item { + return true; + } } // Several games/episodes are grouped together here. - if path.starts_with(&format!("{WIN_DOCUMENTS}/Telltale Games/*/")) { - return true; + for item in [ + format!("{WIN_DOCUMENTS}/Telltale Games/*/"), + format!("{XDG_CONFIG}/unity3d/*"), + format!("{XDG_DATA}/unity3d/*"), + ] { + if path.starts_with(&item) { + return true; + } } // Drive letters: