diff --git a/kernel/api/riff.go b/kernel/api/riff.go index 3841a2815..c40293310 100644 --- a/kernel/api/riff.go +++ b/kernel/api/riff.go @@ -40,7 +40,7 @@ func getRiffCards(c *gin.Context) { page := int(arg["page"].(float64)) blockIDs, total, pageCount := model.GetFlashcards(deckID, page) ret.Data = map[string]interface{}{ - "blockIDs": blockIDs, + "blocks": blockIDs, "total": total, "pageCount": pageCount, } diff --git a/kernel/model/flashcard.go b/kernel/model/flashcard.go index 6c6c3f211..5d83d51cd 100644 --- a/kernel/model/flashcard.go +++ b/kernel/model/flashcard.go @@ -18,6 +18,7 @@ package model import ( "errors" + "github.com/siyuan-note/siyuan/kernel/sql" "math" "os" "path/filepath" @@ -40,8 +41,8 @@ import ( var Decks = map[string]*riff.Deck{} var deckLock = sync.Mutex{} -func GetFlashcards(deckID string, page int) (blockIDs []string, total, pageCount int) { - blockIDs = []string{} +func GetFlashcards(deckID string, page int) (blocks []*Block, total, pageCount int) { + blocks = []*Block{} deck := Decks[deckID] if nil == deck { return @@ -62,11 +63,19 @@ func GetFlashcards(deckID string, page int) (blockIDs []string, total, pageCount if end > len(allBlockIDs) { end = len(allBlockIDs) } - blockIDs = allBlockIDs[start:end] + blockIDs := allBlockIDs[start:end] total = len(allBlockIDs) pageCount = int(math.Ceil(float64(total) / float64(pageSize))) if 1 > len(blockIDs) { - blockIDs = []string{} + blocks = []*Block{} + return + } + + sqlBlocks := sql.GetBlocks(blockIDs) + blocks = fromSQLBlocks(&sqlBlocks, "", 36) + if 1 > len(blocks) { + blocks = []*Block{} + return } return }