mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00

Cards had developed quite a lot of cruft from incremental changes, and a number of important attributes were stored in names that had no bearing to their actual use. Added: - position, which new cards will be sorted on in the future - flags, which is reserved for future use Renamed: - type to queue - relativeDelay to type - noCount to lapses Removed: - all new/young/matureEase counts; the information is in the revlog - firstAnswered, lastDue, lastFactor, averageTime and totalTime for the same reason - isDue, spaceUntil and combinedDue, because they are no longer used. Spaced cards will be implemented differently in a coming commit. - priority - yesCount, because it can be inferred from reps & lapses - tags; they've been stored in facts for a long time now Also compatibility with deck versions less than 65 has been dropped, so decks will need to be upgraded to 1.2 before they can be upgraded by the dev code. All shared decks are on 1.2, so this should hopefully not be a problem.
32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright: Damien Elmes <anki@ichi2.net>
|
|
# License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html
|
|
|
|
import time
|
|
from anki.db import *
|
|
|
|
# Flags: 0=standard review, 1=reschedule due to cram, drill, etc
|
|
# Rep: Repetition number. The same number may appear twice if a card has been
|
|
# manually rescheduled or answered on multiple sites before a sync.
|
|
|
|
revlogTable = Table(
|
|
'revlog', metadata,
|
|
Column('time', Float, nullable=False, primary_key=True, default=time.time),
|
|
Column('cardId', Integer, nullable=False),
|
|
Column('ease', Integer, nullable=False),
|
|
Column('rep', Integer, nullable=False),
|
|
Column('lastInterval', Float, nullable=False),
|
|
Column('interval', Float, nullable=False),
|
|
Column('factor', Float, nullable=False),
|
|
Column('userTime', Float, nullable=False),
|
|
Column('flags', Integer, nullable=False, default=0))
|
|
|
|
def logReview(db, card, ease, flags=0):
|
|
db.statement("""
|
|
insert into revlog values (
|
|
:created, :cardId, :ease, :rep, :lastInterval, :interval, :factor,
|
|
:userTime, :flags)""",
|
|
created=time.time(), cardId=card.id, ease=ease, rep=card.reps,
|
|
lastInterval=card.lastInterval, interval=card.interval,
|
|
factor=card.factor, userTime=card.userTime(),
|
|
flags=flags)
|