🎨 Distinguish between new cards and review cards during spaced repetition https://github.com/siyuan-note/siyuan/issues/9377

This commit is contained in:
Daniel 2023-12-22 10:14:59 +08:00
parent b5494e9af7
commit c32cad7c3e
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017

View File

@ -626,8 +626,8 @@ func getAllDueFlashcards(reviewedCardIDs []string) (ret []*Flashcard, unreviewed
for _, deck := range Decks { for _, deck := range Decks {
cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit) cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit)
unreviewedCount += unreviewedCnt unreviewedCount += unreviewedCnt
unreviewedNewCardCnt += unreviewedNewCardCnt unreviewedNewCardCount += unreviewedNewCardCnt
unreviewedOldCardCnt += unreviewedOldCardCnt unreviewedOldCardCount += unreviewedOldCardCnt
for _, card := range cards { for _, card := range cards {
ret = append(ret, newFlashcard(card, card.BlockID(), deck.ID, now)) ret = append(ret, newFlashcard(card, card.BlockID(), deck.ID, now))
} }
@ -994,38 +994,16 @@ func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCar
dues := deck.Dues() dues := deck.Dues()
var tmp []riff.Card var tmp []riff.Card
for _, c := range dues {
if nil == treenode.GetBlockTree(c.BlockID()) {
continue
}
tmp = append(tmp, c)
}
dues = tmp
tmp = nil
for _, c := range dues { for _, c := range dues {
if 0 < len(blockIDs) && !gulu.Str.Contains(c.BlockID(), blockIDs) { if 0 < len(blockIDs) && !gulu.Str.Contains(c.BlockID(), blockIDs) {
continue continue
} }
tmp = append(tmp, c)
if 0 < len(reviewedCardIDs) { if nil == treenode.GetBlockTree(c.BlockID()) {
if !gulu.Str.Contains(c.ID(), reviewedCardIDs) { continue
unreviewedCount++
if riff.New == c.GetState() {
unreviewedNewCardCount++
} else {
unreviewedOldCardCount++
}
}
} else {
unreviewedCount++
if riff.New == c.GetState() {
unreviewedNewCardCount++
} else {
unreviewedOldCardCount++
}
} }
tmp = append(tmp, c)
} }
dues = tmp dues = tmp
@ -1055,8 +1033,22 @@ func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCar
} }
} }
if 0 < len(reviewedCardIDs) && !gulu.Str.Contains(c.ID(), reviewedCardIDs) { if 0 < len(reviewedCardIDs) {
continue if !gulu.Str.Contains(c.ID(), reviewedCardIDs) {
unreviewedCount++
if riff.New == c.GetState() {
unreviewedNewCardCount++
} else {
unreviewedOldCardCount++
}
}
} else {
unreviewedCount++
if riff.New == c.GetState() {
unreviewedNewCardCount++
} else {
unreviewedOldCardCount++
}
} }
ret = append(ret, c) ret = append(ret, c)