Replace string paths with pathlib's path #11
2 changed files with 18 additions and 15 deletions
|
|
@ -1,17 +1,18 @@
|
|||
import tomlkit
|
||||
from pathlib import Path
|
||||
from tomlkit import TOMLDocument
|
||||
|
||||
|
||||
class Mod:
|
||||
__config: TOMLDocument
|
||||
__path: str
|
||||
__path: Path
|
||||
__name: str
|
||||
__description: str
|
||||
__author: str
|
||||
__enabled: bool
|
||||
|
||||
@property
|
||||
def path(self) -> str:
|
||||
def path(self) -> Path:
|
||||
return self.__path
|
||||
|
||||
# Mod metadata
|
||||
|
|
@ -44,15 +45,17 @@ class Mod:
|
|||
# Nothing to do
|
||||
return
|
||||
|
||||
with open(self.__path + "config.toml", "w") as config_file:
|
||||
config_toml = Path(self.__path, "config.toml")
|
||||
with config_toml.open("w") as config_file:
|
||||
self.__config["enabled"] = value
|
||||
tomlkit.dump(self.__config, config_file)
|
||||
|
||||
def __init__(self, path: str) -> None:
|
||||
def __init__(self, path: Path) -> None:
|
||||
self.__path = path
|
||||
|
||||
try:
|
||||
with open(path + "config.toml") as config_file:
|
||||
config_toml = Path(self.__path, "config.toml")
|
||||
with config_toml.open() as config_file:
|
||||
self.__config = tomlkit.load(config_file)
|
||||
|
||||
if "enabled" not in self.__config:
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
from PySide6.QtQml import QmlElement
|
||||
from PySide6.QtCore import QAbstractListModel, QModelIndex
|
||||
from leek.mod import Mod, InvalidModError
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
QML_IMPORT_NAME = "Leek"
|
||||
QML_IMPORT_MAJOR_VERSION = 1
|
||||
|
||||
# TODO: Don't harcode the mods path
|
||||
GAME_PATH = "/home/toast/.local/share/Steam/steamapps/common/Hatsune Miku Project DIVA Mega Mix Plus/"
|
||||
GAME_PATH = Path("/home/toast/.local/share/Steam/steamapps/common/Hatsune Miku Project DIVA Mega Mix Plus/")
|
||||
MOD_PATH = Path(GAME_PATH, "mods")
|
||||
|
||||
# Qt follows C++ naming conventions
|
||||
# ruff: noqa: N802
|
||||
|
|
@ -17,13 +18,12 @@ class QModListModel(QAbstractListModel):
|
|||
super().__init__(parent=parent)
|
||||
mods: list[Mod] = []
|
||||
|
||||
with os.scandir(GAME_PATH + "mods/") as dirs:
|
||||
for dir in dirs:
|
||||
for dir in MOD_PATH.iterdir():
|
||||
try:
|
||||
new_mod: Mod = Mod(dir.path + "/" )
|
||||
new_mod: Mod = Mod(dir)
|
||||
mods.append(new_mod)
|
||||
except InvalidModError as e:
|
||||
print(f"Found invalid mod at {dir.path}: {e.message}")
|
||||
print(f"Found invalid mod at {dir}: {e.message}")
|
||||
continue
|
||||
|
||||
self.mods = mods
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue