🎨 Add kernel API /api/riff/getRiffCardsByBlockIDs Fix https://github.com/siyuan-note/siyuan/issues/10535

This commit is contained in:
Daniel 2024-03-07 20:51:14 +08:00
parent e083dacca8
commit fd709b99b7
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017
2 changed files with 22 additions and 11 deletions

View File

@ -40,17 +40,10 @@ func getRiffCardsByBlockIDs(c *gin.Context) {
for _, blockID := range blockIDsArg {
blockIDs = append(blockIDs, blockID.(string))
}
page := int(arg["page"].(float64))
pageSize := 20
if nil != arg["pageSize"] {
pageSize = int(arg["pageSize"].(float64))
}
blocks, total, pageCount := model.GetFlashcardsByBlockIDs(blockIDs, page, pageSize)
blocks := model.GetFlashcardsByBlockIDs(blockIDs)
ret.Data = map[string]interface{}{
"blocks": blocks,
"total": total,
"pageCount": pageCount,
"blocks": blocks,
}
}

View File

@ -38,19 +38,37 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func GetFlashcardsByBlockIDs(blockIDs []string, page, pageSize int) (blocks []*Block, total, pageCount int) {
func GetFlashcardsByBlockIDs(blockIDs []string) (ret []*Block) {
deckLock.Lock()
defer deckLock.Unlock()
waitForSyncingStorages()
ret = []*Block{}
deck := Decks[builtinDeckID]
if nil == deck {
return
}
cards := deck.GetCardsByBlockIDs(blockIDs)
blocks, total, pageCount = getCardsBlocks(cards, page, pageSize)
blocks, _, _ := getCardsBlocks(cards, 1, math.MaxInt)
for _, blockID := range blockIDs {
found := false
for _, block := range blocks {
if blockID == block.ID {
found = true
ret = append(ret, block)
break
}
}
if !found {
ret = append(ret, &Block{
ID: blockID,
Content: Conf.Language(180),
})
}
}
return
}