Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions stapler-scripts/ark-mod-manager/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
PRESETS_FILE = os.path.join(SCRIPT_DIR, "tuning_presets.json")
BACKUP_DIR = os.path.join(SCRIPT_DIR, ".backups")

RE_MOD_ID = re.compile(r"^(\d+)_")

STEAM_APPS = os.path.expanduser("~/.local/share/Steam/steamapps/common")
ARK_ROOT = os.path.join(STEAM_APPS, "ARK Survival Ascended")
ARK_CONFIG_DIR = os.path.join(ARK_ROOT, "ShooterGame/Saved/Config/Windows")
Expand Down Expand Up @@ -72,12 +74,7 @@ def get_active_mods(config_content):
def get_installed_mod_ids():
if not os.path.exists(MODS_DIR):
return []
ids = []
for item in os.listdir(MODS_DIR):
match = re.match(r"^(\d+)_", item)
if match:
ids.append(match.group(1))
return list(set(ids))
return list({m.group(1) for item in os.listdir(MODS_DIR) if (m := RE_MOD_ID.match(item))})

def get_mod_info(mod_id, mapping):
info = mapping.get(mod_id)
Expand Down Expand Up @@ -131,7 +128,7 @@ def scan_local_mods(mapping):
mod_dir = os.path.join(MODS_DIR, item)
if not os.path.isdir(mod_dir):
continue
match = re.match(r"^(\d+)_", item)
match = RE_MOD_ID.match(item)
if not match:
continue

Expand Down
11 changes: 4 additions & 7 deletions stapler-scripts/ark-mod-manager/manage_mods.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
PRESETS_FILE = os.path.join(SCRIPT_DIR, "tuning_presets.json")
BACKUP_DIR = os.path.join(SCRIPT_DIR, ".backups")

RE_MOD_ID = re.compile(r"^(\d+)_")

STEAM_APPS = os.path.expanduser("~/.local/share/Steam/steamapps/common")
ARK_ROOT = os.path.join(STEAM_APPS, "ARK Survival Ascended")
ARK_CONFIG_DIR = os.path.join(ARK_ROOT, "ShooterGame/Saved/Config/Windows")
Expand Down Expand Up @@ -72,12 +74,7 @@ def get_active_mods(config_content):
def get_installed_mod_ids():
if not os.path.exists(MODS_DIR):
return []
ids = []
for item in os.listdir(MODS_DIR):
match = re.match(r"^(\d+)_", item)
if match:
ids.append(match.group(1))
return list(set(ids))
return list({m.group(1) for item in os.listdir(MODS_DIR) if (m := RE_MOD_ID.match(item))})

def get_mod_info(mod_id, mapping):
info = mapping.get(mod_id)
Expand Down Expand Up @@ -132,7 +129,7 @@ def scan_local_mods(mapping):
mod_dir = os.path.join(MODS_DIR, item)
if not os.path.isdir(mod_dir):
continue
match = re.match(r"^(\d+)_", item)
match = RE_MOD_ID.match(item)
if not match:
continue

Expand Down
2 changes: 1 addition & 1 deletion stapler-scripts/ark-mod-manager/test_manage_mods.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def test_list_mods(mock_print, mock_load):
def test_tag_mod(mock_save):
mapping = {}
manage_mods.tag_mod("111", "Name", mapping)
assert mapping["111"] == "Name"
assert mapping["111"] == {"name": "Name", "url": ""}
mock_save.assert_called()

@patch("builtins.open", new_callable=mock_open, read_data=SAMPLE_CONFIG)
Expand Down