瀏覽代碼

:art: 支持浏览卡包内的闪卡 https://github.com/siyuan-note/siyuan/issues/6943

Liang Ding 2 年之前
父節點
當前提交
51b4f68035
共有 2 個文件被更改,包括 14 次插入5 次删除
  1. 1 1
      kernel/api/riff.go
  2. 13 4
      kernel/model/flashcard.go

+ 1 - 1
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,
 	}

+ 13 - 4
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
 }