from banjo.models import Model, StringField, IntegerField from fuzzywuzzy import fuzz class Riddle(Model): question = StringField() answer = StringField() guesses = IntegerField() correct = IntegerField() MIN_SIMILARITY = 80 def to_dict(self): return { "id": self.id, "question": self.question, "guesses": self.guesses, "correct": self.correct, } def check_guess(self, guess): similarity = fuzz.ratio(guess, self.answer) is_correct = (similarity >= self.MIN_SIMILARITY) self.guesses += 1 if is_correct: self.correct+= 1 self.save() return is_correct