Implement memorize_know and get cards alread known

This commit is contained in:
duongban
2021-06-19 17:11:54 +07:00
parent 87a4db4d6d
commit 09b86b7766

View File

@@ -193,6 +193,29 @@ def memorize(card_type, card_id=None):
card_type=card_type,
short_answer=short_answer, tags=tags)
@app.route('/memorize_know')
@app.route('/memorize_know/<card_id>')
@app.route('/memorize_know/<card_type>')
def memorize_know(card_type, card_id=None):
tag = getTag(card_type)
if tag is None:
return redirect(url_for('cards'))
if card_id:
card = get_card_by_id(card_id)
else:
card = get_card_already_know(card_type)
if not card:
flash("You hasn't learned any '" + tag[1] + "' cards yet.")
return redirect(url_for('show'))
short_answer = (len(card['back']) < 75)
tags = getAllTag()
card_type = int(card_type)
return render_template('memorize_know.html',
card=card,
card_type=card_type,
short_answer=short_answer, tags=tags)
def get_card(type):
db = get_db()
@@ -419,6 +442,23 @@ def handle_old_schema():
create_tag_table()
init_tag()
def get_card_already_know(type):
db = get_db()
query = '''
SELECT
id, type, front, back, known
FROM cards
WHERE
type = ?
and known = 1
ORDER BY RANDOM()
LIMIT 1
'''
cur = db.execute(query, [type])
return cur.fetchone()
if __name__ == '__main__':
app.run(host='0.0.0.0')