From 6d721a3d86b0cc2e56ede985b782927b708910f0 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 2 Oct 2008 17:08:00 +0900 Subject: [PATCH] fail gracefully if id doesn't exist --- anki/cards.py | 3 +++ anki/deck.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/anki/cards.py b/anki/cards.py index 7468f80fb..bbe6c612a 100644 --- a/anki/cards.py +++ b/anki/cards.py @@ -149,6 +149,8 @@ class Card(object): def fromDB(self, s, id): r = s.first("select * from cards where id = :id", id=id) + if not r: + return (self.id, self.factId, self.cardModelId, @@ -187,6 +189,7 @@ class Card(object): self.isDue, self.type, self.combinedDue) = r + return True def toDB(self, s): "Write card to DB. Note that isDue assumes card is not spaced." diff --git a/anki/deck.py b/anki/deck.py index bcf9abbd1..cacb34d07 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -205,10 +205,13 @@ Caller is responsible for ensuring cards are not spaced.""" "Given a card ID, return a card, and start the card timer." if orm: card = self.s.query(anki.cards.Card).get(id) + if not card: + return card.timerStopped = False else: card = anki.cards.Card() - card.fromDB(self.s, id) + if not card.fromDB(self.s, id): + return card.genFuzz() card.startTimer() return card