Compare commits

...

7 Commits

Author SHA1 Message Date
kramo
893b290a1e v1.5.5 2023-06-10 18:48:39 +02:00
kramo
49769b7083 Fix import hanging if custom Bottles location 2023-06-10 18:45:56 +02:00
kramo
5fadaf8537 Add _ to Python builtins 2023-06-10 18:24:59 +02:00
kramo
e804f8192e Update bug_report.md 2023-06-02 17:40:28 +02:00
kramo
1311c53c3e Import demos from Steam - closes #108 2023-05-30 20:24:41 +02:00
kramo
6f69344a16 v1.5.4 2023-05-27 17:54:43 +02:00
kramo
63951d76ac Fix custom path check logic 2023-05-27 17:53:08 +02:00
10 changed files with 38 additions and 24 deletions

View File

@@ -26,6 +26,7 @@ If applicable, add screenshots to help explain your problem.
**System (please complete the following information):** **System (please complete the following information):**
- OS: [e.g. Fedora Linux] - OS: [e.g. Fedora Linux]
- Installation method [e.g. Flatpak] - Installation method [e.g. Flatpak]
- Cartridges version [e.g. 1.5.4]
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

View File

@@ -44,11 +44,10 @@
</screenshots> </screenshots>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="1.5.3" date="2023-05-27"> <release version="1.5.5" date="2023-06-10">
<description translatable="no"> <description translatable="no">
<ul> <ul>
<li>Fixes a bug with custom install locations</li> <li>Fixes an issue with Bottles' custom Bottles directory feature</li>
<li>Translations since 1.5</li>
</ul> </ul>
</description> </description>
</release> </release>

View File

@@ -1,5 +1,5 @@
project('cartridges', project('cartridges',
version: '1.5.3', version: '1.5.5',
meson_version: '>= 0.59.0', meson_version: '>= 0.59.0',
default_options: [ 'warning_level=2', 'werror=false', ], default_options: [ 'warning_level=2', 'werror=false', ],
) )

1
src/__builtins__.pyi Normal file
View File

@@ -0,0 +1 @@
def _(_msg: str, /) -> str: ...

View File

@@ -34,6 +34,7 @@ def bottles_installed(path=None):
(path,) (path,)
if path if path
else ( else (
Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/com.usebottles.bottles/data/bottles", Path.home() / ".var/app/com.usebottles.bottles/data/bottles",
shared.data_dir / "bottles", shared.data_dir / "bottles",
) )
@@ -82,15 +83,25 @@ def bottles_importer():
values["added"] = current_time values["added"] = current_time
values["last_played"] = 0 values["last_played"] = 0
importer.save_game( # This will not work if both Cartridges and Bottles are installed via Flatpak
values, # as Cartridges can't access directories picked via Bottles' file picker portal
( try:
bottles_dir bottles_location = Path(
/ "bottles" yaml.safe_load((bottles_dir / "data.yml").read_text("utf-8"))[
"custom_bottles_path"
]
)
except (FileNotFoundError, KeyError):
bottles_location = bottles_dir / "bottles"
grid_path = (
bottles_location
/ game["bottle"]["path"] / game["bottle"]["path"]
/ "grids" / "grids"
/ game["thumbnail"].split(":")[1] / game["thumbnail"].split(":")[1]
) )
if game["thumbnail"]
else None, importer.save_game(
values,
grid_path if game["thumbnail"] and grid_path.is_file() else None,
) )

View File

@@ -35,6 +35,7 @@ def heroic_installed(path=None):
(path,) (path,)
if path if path
else ( else (
Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic", Path.home() / ".var/app/com.heroicgameslauncher.hgl/config/heroic",
shared.config_dir / "heroic", shared.config_dir / "heroic",
) )

View File

@@ -129,6 +129,7 @@ def itch_installed(path=None):
(path,) (path,)
if path if path
else ( else (
Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/io.itch.itch/config/itch", Path.home() / ".var/app/io.itch.itch/config/itch",
shared.config_dir / "itch", shared.config_dir / "itch",
) )

View File

@@ -34,6 +34,7 @@ def lutris_installed(path=None):
(path,) (path,)
if path if path
else ( else (
Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".var/app/net.lutris.Lutris/data/lutris", Path.home() / ".var/app/net.lutris.Lutris/data/lutris",
shared.data_dir / "lutris", shared.data_dir / "lutris",
) )
@@ -52,6 +53,7 @@ def lutris_cache_exists(path=None):
(path,) (path,)
if path if path
else ( else (
Path(shared.schema.get_string(cache_key)).expanduser(),
Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris", Path.home() / ".var" / "app" / "net.lutris.Lutris" / "cache" / "lutris",
shared.cache_dir / "lutris", shared.cache_dir / "lutris",
) )

View File

@@ -38,7 +38,7 @@ def update_values_from_data(content, values):
if data.get("developers"): if data.get("developers"):
values["developer"] = ", ".join(data["developers"]) values["developer"] = ", ".join(data["developers"])
if data.get("type") != "game": if data.get("type") not in {"game", "demo"}:
values["blacklisted"] = True values["blacklisted"] = True
return values return values
@@ -126,7 +126,6 @@ def get_games_async(appmanifests, steam_dir, importer):
def steam_installed(path=None): def steam_installed(path=None):
location_key = "steam-location" location_key = "steam-location"
steam_dir = Path(shared.schema.get_string(location_key)).expanduser()
check = "steamapps" check = "steamapps"
subdirs = ("steam", "Steam") subdirs = ("steam", "Steam")
@@ -134,7 +133,7 @@ def steam_installed(path=None):
(path,) (path,)
if path if path
else ( else (
steam_dir, Path(shared.schema.get_string(location_key)).expanduser(),
Path.home() / ".steam", Path.home() / ".steam",
shared.data_dir / "Steam", shared.data_dir / "Steam",
Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam", Path.home() / ".var/app/com.valvesoftware.Steam/data/Steam",
@@ -165,13 +164,12 @@ def steam_importer():
steam_dirs = [steam_dir] steam_dirs = [steam_dir]
for directory in steam_dirs: for directory in steam_dirs:
if not (directory / "steamapps").is_dir(): try:
steam_dirs.remove(directory)
for directory in steam_dirs:
for open_file in (directory / "steamapps").iterdir(): for open_file in (directory / "steamapps").iterdir():
if open_file.is_file() and "appmanifest" in open_file.name: if open_file.is_file() and "appmanifest" in open_file.name:
appmanifests.append(open_file) appmanifests.append(open_file)
except FileNotFoundError:
continue
importer = shared.importer importer = shared.importer
importer.total_queue += len(appmanifests) importer.total_queue += len(appmanifests)

View File

@@ -1,5 +1,5 @@
#define MyAppName "Cartridges" #define MyAppName "Cartridges"
#define MyAppVersion "1.5.3" #define MyAppVersion "1.5.5"
#define MyAppPublisher "kramo" #define MyAppPublisher "kramo"
#define MyAppURL "https://github.com/kra-mo/cartridges" #define MyAppURL "https://github.com/kra-mo/cartridges"
#define MyAppExeName "pythonw.exe" #define MyAppExeName "pythonw.exe"