def word_won(word): try: query = Word.update(wins=Word.wins + 1).where(Word.text == word) query.execute() except: db.rollback() raise
def get_next_word(used=None): try: # Fetch a random word that hasn't been used much subquery = Word.select(fn.Avg(Word.plays)) result = (Word.select().order_by( fn.Random()).where(Word.plays <= subquery)) if used: result = result.where((Word.text << used) == False) result = result[0] # Update its play count query = Word.update(plays=Word.plays + 1).where(Word.id == result.id) query.execute() return result except: db.rollback() raise
def get_next_word(used=None): try: # Fetch a random word that hasn't been used much subquery = Word.select(fn.Avg(Word.plays)) result = (Word.select() .order_by(fn.Random()) .where(Word.plays <= subquery)) if used: result = result.where((Word.text << used) == False) result = result[0] # Update its play count query = Word.update(plays=Word.plays + 1).where(Word.id == result.id) query.execute() return result except: db.rollback() raise