Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-02-25 13:44:15 +08:00
commit 6b1202be2a
3 changed files with 16 additions and 10 deletions

View file

@ -172,7 +172,6 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
fetchPost("/api/riff/reviewRiffCard", {
deckID: blocks[index].deckID,
cardID: blocks[index].cardID,
blockID: blocks[index].blockID,
rating: parseInt(type)
}, () => {
index++;

View file

@ -76,9 +76,8 @@ func reviewRiffCard(c *gin.Context) {
deckID := arg["deckID"].(string)
cardID := arg["cardID"].(string)
blockID := arg["blockID"].(string)
rating := int(arg["rating"].(float64))
err := model.ReviewFlashcard(deckID, cardID, blockID, riff.Rating(rating))
err := model.ReviewFlashcard(deckID, cardID, riff.Rating(rating))
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
@ -126,7 +125,6 @@ func getRiffDueCards(c *gin.Context) {
ret.Data = cards
}
// TODO 删除闪卡
func removeRiffCards(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
@ -149,8 +147,11 @@ func removeRiffCards(c *gin.Context) {
return
}
deck := model.Decks[deckID]
ret.Data = deckData(deck)
if "" != deckID {
deck := model.Decks[deckID]
ret.Data = deckData(deck)
}
// All 卡包不返回数据
}
func addRiffCards(c *gin.Context) {

View file

@ -134,7 +134,7 @@ func getCardsBlocks(cards []riff.Card, page int) (blocks []*Block, total, pageCo
// reviewCardCache <cardID, card> 用于复习时缓存卡片,以便支持撤销。
var reviewCardCache = map[string]riff.Card{}
func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err error) {
func ReviewFlashcard(deckID, cardID string, rating riff.Rating) (err error) {
deckLock.Lock()
defer deckLock.Unlock()
@ -150,16 +150,16 @@ func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err er
return
}
if cachedCard := reviewCardCache[card.ID()]; nil != cachedCard {
if cachedCard := reviewCardCache[cardID]; nil != cachedCard {
// 命中缓存说明这张卡片已经复习过了,这次调用复习是撤销后再次复习
// 将缓存的卡片重新覆盖回卡包中,以恢复最开始复习前的状态
deck.SetCard(cachedCard)
} else {
// 首次复习该卡片,将卡片缓存以便后续支持撤销后再次复习
reviewCardCache[card.ID()] = card
reviewCardCache[cardID] = card
}
deck.Review(blockID, rating)
deck.Review(cardID, rating)
err = deck.Save()
if nil != err {
logging.LogErrorf("save deck [%s] failed: %s", deckID, err)
@ -602,6 +602,12 @@ func AddFlashcards(deckID string, blockIDs []string) (err error) {
}
for _, blockID := range blockIDs {
cards := deck.GetCardsByBlockID(blockID)
if 0 < len(cards) {
// 一个块只能添加生成一张闪卡 https://github.com/siyuan-note/siyuan/issues/7476
continue
}
cardID := ast.NewNodeID()
deck.AddCard(cardID, blockID)
}