Save covers compressed

This commit is contained in:
kramo
2023-03-13 21:35:44 +01:00
parent f57f8d0d67
commit 3af1e42548
6 changed files with 10 additions and 16 deletions

View File

@@ -90,7 +90,7 @@ def bottles_parser(parent_widget, action):
values["last_played"] = 0 values["last_played"] = 0
if game["thumbnail"]: if game["thumbnail"]:
values["pixbuf_options"] = save_cover(values, parent_widget, os.path.join(bottles_dir, "bottles", game["bottle"]["path"], "grids", game["thumbnail"].split(":")[1])) save_cover(values, parent_widget, os.path.join(bottles_dir, "bottles", game["bottle"]["path"], "grids", game["thumbnail"].split(":")[1]))
bottles_games[values["game_id"]] = values bottles_games[values["game_id"]] = values

View File

@@ -175,7 +175,7 @@ def create_details_window(parent_widget, game_id = None):
return return
if pixbuf != None: if pixbuf != None:
values["pixbuf_options"] = save_cover(None, parent_widget, None, pixbuf, game_id) save_cover(None, parent_widget, None, pixbuf, game_id)
values["name"] = final_name values["name"] = final_name
values["executable"] = final_executable values["executable"] = final_executable

View File

@@ -21,15 +21,12 @@ def get_cover(game, parent_widget):
from gi.repository import GdkPixbuf from gi.repository import GdkPixbuf
import os import os
cover_path = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "covers", game["game_id"] + ".dat") cover_path = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "covers", game["game_id"] + ".png")
if os.path.isfile(cover_path) == False: if os.path.isfile(cover_path) == False:
return parent_widget.placeholder_pixbuf return parent_widget.placeholder_pixbuf
open_file = open((cover_path), "rb")
data = open_file.read()
open_file.close()
try: try:
return GdkPixbuf.Pixbuf.new_from_data(data, *parent_widget.games[game["game_id"]]["pixbuf_options"]) return GdkPixbuf.Pixbuf.new_from_file(cover_path)
except KeyError: except KeyError:
return parent_widget.placeholder_pixbuf return parent_widget.placeholder_pixbuf

View File

@@ -95,7 +95,7 @@ def heroic_parser(parent_widget, action):
image_path = os.path.join(heroic_dir, "images-cache", hashlib.sha256((game["art_square"] + "?h=400&resize=1&w=300").encode()).hexdigest()) image_path = os.path.join(heroic_dir, "images-cache", hashlib.sha256((game["art_square"] + "?h=400&resize=1&w=300").encode()).hexdigest())
if os.path.exists(image_path): if os.path.exists(image_path):
values["pixbuf_options"] = save_cover(values, parent_widget, image_path) save_cover(values, parent_widget, image_path)
heroic_games[values["game_id"]] = values heroic_games[values["game_id"]] = values
@@ -128,7 +128,7 @@ def heroic_parser(parent_widget, action):
image_path = os.path.join(heroic_dir, "images-cache", image_path = os.path.join(heroic_dir, "images-cache",
hashlib.sha256(game["art_square"].encode()).hexdigest()) hashlib.sha256(game["art_square"].encode()).hexdigest())
if os.path.exists(image_path): if os.path.exists(image_path):
values["pixbuf_options"] = save_cover(values, parent_widget, image_path) save_cover(values, parent_widget, image_path)
break break
values["executable"] = "xdg-open heroic://launch/" + app_name values["executable"] = "xdg-open heroic://launch/" + app_name
@@ -166,7 +166,7 @@ def heroic_parser(parent_widget, action):
image_path = os.path.join(heroic_dir, "images-cache", image_path = os.path.join(heroic_dir, "images-cache",
hashlib.sha256(item["art_square"].encode()).hexdigest()) hashlib.sha256(item["art_square"].encode()).hexdigest())
if os.path.exists(image_path): if os.path.exists(image_path):
values["pixbuf_options"] = save_cover(values, parent_widget, image_path) save_cover(values, parent_widget, image_path)
heroic_games[values["game_id"]] = values heroic_games[values["game_id"]] = values

View File

@@ -28,12 +28,9 @@ def save_cover(game, parent_widget, file_path, pixbuf = None, game_id = None):
if game_id == None: if game_id == None:
game_id = game["game_id"] game_id = game["game_id"]
cover_path = os.path.join(covers_dir, game_id + ".dat") cover_path = os.path.join(covers_dir, game_id + ".png")
if pixbuf == None: if pixbuf == None:
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file_path, 400, 600, False) pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file_path, 400, 600, False)
open_file = open((cover_path), "wb") pixbuf.savev(cover_path, "png")
open_file.write(bytes(pixbuf.get_pixels()))
open_file.close()
return [pixbuf.get_colorspace(), pixbuf.get_has_alpha(), pixbuf.get_bits_per_sample(), pixbuf.get_width(), pixbuf.get_height(), pixbuf.get_rowstride()]

View File

@@ -97,7 +97,7 @@ def steam_parser(parent_widget, action):
values["last_played"] = 0 values["last_played"] = 0
if os.path.isfile(os.path.join(steam_dir, "appcache", "librarycache", values["appid"] + "_library_600x900.jpg")): if os.path.isfile(os.path.join(steam_dir, "appcache", "librarycache", values["appid"] + "_library_600x900.jpg")):
values["pixbuf_options"] = save_cover(values, parent_widget, os.path.join(steam_dir, "appcache", "librarycache", values["appid"] + "_library_600x900.jpg")) save_cover(values, parent_widget, os.path.join(steam_dir, "appcache", "librarycache", values["appid"] + "_library_600x900.jpg"))
steam_games[values["game_id"]] = values steam_games[values["game_id"]] = values