summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gamechestcli/gamechest/cliactions/install.py3
-rw-r--r--gamechestcli/gamechest/cliactions/remove.py3
-rw-r--r--gamechestcli/gamechest/gamedb.py19
-rw-r--r--gamechestcli/gamechest/statusdb.py6
4 files changed, 17 insertions, 14 deletions
diff --git a/gamechestcli/gamechest/cliactions/install.py b/gamechestcli/gamechest/cliactions/install.py
index 9d55883..ed2437f 100644
--- a/gamechestcli/gamechest/cliactions/install.py
+++ b/gamechestcli/gamechest/cliactions/install.py
@@ -16,7 +16,8 @@ def install_game(status_db, game_info):
def install(game_id):
- game_info = gamedb.get_game_info(game_id)
+ game_db = gamdb.GameDB()
+ game_info = game_db.get_game_info(game_id)
status_db = StatusDB()
if status_db.is_installed(game_info):
# games is already installed
diff --git a/gamechestcli/gamechest/cliactions/remove.py b/gamechestcli/gamechest/cliactions/remove.py
index 2024b4b..1668e63 100644
--- a/gamechestcli/gamechest/cliactions/remove.py
+++ b/gamechestcli/gamechest/cliactions/remove.py
@@ -23,7 +23,8 @@ def remove_game(status_db, game_info):
def remove(game_id):
- game_info = gamedb.get_game_info(game_id)
+ game_db = gamdb.GameDB()
+ game_info = game_db.get_game_info(game_id)
status_db = StatusDB()
if status_db.is_installed(game_info):
remove_game(status_db, game_info)
diff --git a/gamechestcli/gamechest/gamedb.py b/gamechestcli/gamechest/gamedb.py
index 1e3967c..d932438 100644
--- a/gamechestcli/gamechest/gamedb.py
+++ b/gamechestcli/gamechest/gamedb.py
@@ -3,14 +3,15 @@ import yaml
from . import paths
-def load_games_database():
- database_path = paths.get_games_database_path()
- with open(database_path, 'rb') as fdin:
- return yaml.safe_load(fdin)
+class GameDB:
+ def __init__(self):
+ database_path = paths.get_games_database_path()
+ with open(database_path, 'rb') as fdin:
+ self.db = yaml.safe_load(fdin)
-def get_game_info(game_id):
- db = load_games_database()
- return next(game_info
- for game_info in db['games']
- if game_info['id'] == game_id)
+
+ def get_game_info(self, game_id):
+ return next(game_info
+ for game_info in self.db['games']
+ if game_info['id'] == game_id)
diff --git a/gamechestcli/gamechest/statusdb.py b/gamechestcli/gamechest/statusdb.py
index a010206..a41fe32 100644
--- a/gamechestcli/gamechest/statusdb.py
+++ b/gamechestcli/gamechest/statusdb.py
@@ -43,7 +43,7 @@ class StatusDB:
(game_info['id'], ))
.fetchone()
)
- with cursor:
+ with self.conn:
if row is None:
cursor.execute('''
INSERT INTO status
@@ -77,9 +77,9 @@ class StatusDB:
#return False
raise ValueError('Game not found')
version_installed = row[0]
- return f'{game_id}_v{version}'
+ return f'{game_id}_v{version_installed}'
- def unset_installed(self, game_info):
+ def set_uninstalled(self, game_info):
return self.set_installed(game_info, installed=False)
def __enter__(self):