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