From 284b5946c61cc39d8aa880554ce5ba363285c5fc Mon Sep 17 00:00:00 2001 From: zlg Date: Mon, 2 Mar 2020 21:09:00 -0800 Subject: Avoid a backtrace when updating an invalid game ZLG-Bug: 2 --- src/vgstash/__init__.py | 6 ++++-- src/vgstash_cli.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) mode change 100644 => 100755 src/vgstash_cli.py 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 old mode 100644 new mode 100755 index b92201f..323f1d9 --- 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') -- cgit v1.2.3-54-g00ecf