diff --git a/kernel/api/riff.go b/kernel/api/riff.go index 89b5307ea..9d2ea5fa2 100644 --- a/kernel/api/riff.go +++ b/kernel/api/riff.go @@ -27,7 +27,7 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) -func renderRiffCard(c *gin.Context) { +func searchRiffCards(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) @@ -36,16 +36,10 @@ func renderRiffCard(c *gin.Context) { return } - blockID := arg["blockID"].(string) - content, err := model.RenderFlashcard(blockID) - if nil != err { - ret.Code = -1 - ret.Msg = err.Error() - return - } - + deckID := arg["deckID"].(string) + blockIDs := model.SearchFlashcard(deckID) ret.Data = map[string]interface{}{ - "content": content, + "blockIDs": blockIDs, } } diff --git a/kernel/api/router.go b/kernel/api/router.go index 12c161f65..f65db1623 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -307,8 +307,8 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/riff/addRiffCards", model.CheckAuth, addRiffCards) ginServer.Handle("POST", "/api/riff/removeRiffCards", model.CheckAuth, removeRiffCards) ginServer.Handle("POST", "/api/riff/getRiffDueCards", model.CheckAuth, getRiffDueCards) - ginServer.Handle("POST", "/api/riff/renderRiffCard", model.CheckAuth, renderRiffCard) ginServer.Handle("POST", "/api/riff/reviewRiffCard", model.CheckAuth, reviewRiffCard) + ginServer.Handle("POST", "/api/riff/searchRiffCards", model.CheckAuth, searchRiffCards) ginServer.Handle("POST", "/api/notification/pushMsg", model.CheckAuth, pushMsg) ginServer.Handle("POST", "/api/notification/pushErrMsg", model.CheckAuth, pushErrMsg) diff --git a/kernel/model/flashcard.go b/kernel/model/flashcard.go index dc2d75603..09bcdfe27 100644 --- a/kernel/model/flashcard.go +++ b/kernel/model/flashcard.go @@ -25,7 +25,6 @@ import ( "time" "github.com/88250/gulu" - "github.com/88250/lute" "github.com/88250/lute/ast" "github.com/88250/lute/parse" "github.com/dustin/go-humanize" @@ -39,23 +38,7 @@ import ( var Decks = map[string]*riff.Deck{} var deckLock = sync.Mutex{} -func RenderFlashcard(blockID string) (content string, err error) { - tree, err := loadTreeByBlockID(blockID) - if nil != err { - return - } - - node := treenode.GetNodeInTree(tree, blockID) - if nil == node { - return - } - - luteEngine := NewLute() - if ast.NodeDocument == node.Type { - content = luteEngine.Tree2BlockDOM(tree, luteEngine.RenderOptions) - } else { - content = lute.RenderNodeBlockDOM(node, luteEngine.ParseOptions, luteEngine.RenderOptions) - } +func SearchFlashcard(deckID string) (blockIDs []string) { return } @@ -365,7 +348,7 @@ func InitFlashcards() { } if 1 > len(Decks) { - deck, createErr := CreateDeck("Default Deck") + deck, createErr := createDeck("Default Deck") if nil == createErr { Decks[deck.ID] = deck } @@ -402,12 +385,17 @@ func RemoveDeck(deckID string) (err error) { riffSavePath := getRiffDir() deckPath := filepath.Join(riffSavePath, deckID+".deck") - if err = os.Remove(deckPath); nil != err { - return + if gulu.File.IsExist(deckPath) { + if err = os.Remove(deckPath); nil != err { + return + } } + cardsPath := filepath.Join(riffSavePath, deckID+".cards") - if err = os.Remove(cardsPath); nil != err { - return + if gulu.File.IsExist(cardsPath) { + if err = os.Remove(cardsPath); nil != err { + return + } } InitFlashcards() @@ -417,7 +405,10 @@ func RemoveDeck(deckID string) (err error) { func CreateDeck(name string) (deck *riff.Deck, err error) { deckLock.Lock() defer deckLock.Unlock() + return createDeck(name) +} +func createDeck(name string) (deck *riff.Deck, err error) { if syncingStorages { err = errors.New(Conf.Language(81)) return