diff options
author | zlg <zlg@zlg.space> | 2020-03-02 21:09:00 -0800 |
---|---|---|
committer | zlg <zlg@zlg.space> | 2020-03-02 21:09:00 -0800 |
commit | 284b5946c61cc39d8aa880554ce5ba363285c5fc (patch) | |
tree | e8e2234ecb4463f65dbafcc8173b1eef75657ad1 | |
parent | Release version 0.3 beta 4 (diff) | |
download | vgstash-284b5946c61cc39d8aa880554ce5ba363285c5fc.tar.gz vgstash-284b5946c61cc39d8aa880554ce5ba363285c5fc.tar.bz2 vgstash-284b5946c61cc39d8aa880554ce5ba363285c5fc.tar.xz vgstash-284b5946c61cc39d8aa880554ce5ba363285c5fc.zip |
Avoid a backtrace when updating an invalid game
ZLG-Bug: 2
-rwxr-xr-x | src/vgstash/__init__.py | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | src/vgstash_cli.py | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/vgstash/__init__.py b/src/vgstash/__init__.py index 4c1df3b..48ac055 100755 --- a/src/vgstash/__init__.py +++ b/src/vgstash/__init__.py @@ -121,8 +121,8 @@ class DB(object): directly in, with no escaping. Use with caution. 'filter_name' is the name of your filter, and will be the 'name' key - when viewed with list_filters(). usable via `vgscli list [filter name]`. - 'stmt' is a plain SELECT statement representing the SQLite VIEW. + when viewed with list_filters(). usable via `vgstash list [filter name]`. + 'stmt' is a plain SELECT statement representing the internal SQLite VIEW. """ if filter_name.startswith("sqlite_"): raise ValueError("Cannot create a filter with the 'sqlite_' prefix.") @@ -233,6 +233,8 @@ class DB(object): res = self.conn.execute(stmt, (title, system)).fetchone() if bool(res): return Game(res['title'], res['system'], res['ownership'], res['progress'], res['notes']) + else: + raise KeyError def has_game(self, game, fuzzy=False): """ diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py index b92201f..323f1d9 100644..100755 --- a/src/vgstash_cli.py +++ b/src/vgstash_cli.py @@ -158,7 +158,10 @@ def delete_game(title, system): def update_game(title, system, attr, val): # TODO: Consider namedtuple as a solution db = get_db() - target_game = db.get_game(title, system) + try: + target_game = db.get_game(title, system) + except: + click.echo("Game not found. Please try again.") if attr == 'ownership': val = vgstash.vtok(val, vgstash.OWNERSHIP) if attr == 'progress': @@ -172,7 +175,6 @@ def update_game(title, system, attr, val): ) if db.update_game(target_game, updated_game): click.echo("Updated {} for {}. Its {} is now {}.".format(title, system, attr, val)) - pass @cli.command('notes') |