banjo-demo/app/models.py

27 lines
707 B
Python

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