mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-13 07:30:50 +08:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
ef97c2e5a7
@ -33,6 +33,7 @@ import {setTabPosition} from "../window/setHeader";
|
|||||||
/// #endif
|
/// #endif
|
||||||
import {showMessage} from "../dialog/message";
|
import {showMessage} from "../dialog/message";
|
||||||
import {getIdZoomInByPath} from "../util/pathName";
|
import {getIdZoomInByPath} from "../util/pathName";
|
||||||
|
import {openHistory} from "../history/history";
|
||||||
import {Custom} from "./dock/Custom";
|
import {Custom} from "./dock/Custom";
|
||||||
import {newCardModel} from "../card/newCardTab";
|
import {newCardModel} from "../card/newCardTab";
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -247,10 +246,7 @@ func ReviewFlashcard(deckID, cardID string, rating riff.Rating, reviewedCardIDs
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
deck := Decks[deckID]
|
deck := Decks[deckID]
|
||||||
card := deck.GetCard(cardID)
|
card := deck.GetCard(cardID)
|
||||||
@ -290,10 +286,7 @@ func SkipReviewFlashcard(deckID, cardID string) (err error) {
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
deck := Decks[deckID]
|
deck := Decks[deckID]
|
||||||
card := deck.GetCard(cardID)
|
card := deck.GetCard(cardID)
|
||||||
@ -330,10 +323,7 @@ func GetNotebookDueFlashcards(boxID string, reviewedCardIDs []string) (ret []*Fl
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
entries, err := os.ReadDir(filepath.Join(util.DataDir, boxID))
|
entries, err := os.ReadDir(filepath.Join(util.DataDir, boxID))
|
||||||
if nil != err {
|
if nil != err {
|
||||||
@ -384,10 +374,7 @@ func GetTreeDueFlashcards(rootID string, reviewedCardIDs []string) (ret []*Flash
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
deck := Decks[builtinDeckID]
|
deck := Decks[builtinDeckID]
|
||||||
if nil == deck {
|
if nil == deck {
|
||||||
@ -425,10 +412,7 @@ func GetDueFlashcards(deckID string, reviewedCardIDs []string) (ret []*Flashcard
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if "" == deckID {
|
if "" == deckID {
|
||||||
ret, unreviewedCount = getAllDueFlashcards(reviewedCardIDs)
|
ret, unreviewedCount = getAllDueFlashcards(reviewedCardIDs)
|
||||||
@ -735,10 +719,7 @@ func RenameDeck(deckID, name string) (err error) {
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
deck := Decks[deckID]
|
deck := Decks[deckID]
|
||||||
deck.Name = name
|
deck.Name = name
|
||||||
@ -754,10 +735,7 @@ func RemoveDeck(deckID string) (err error) {
|
|||||||
deckLock.Lock()
|
deckLock.Lock()
|
||||||
defer deckLock.Unlock()
|
defer deckLock.Unlock()
|
||||||
|
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
riffSavePath := getRiffDir()
|
riffSavePath := getRiffDir()
|
||||||
deckPath := filepath.Join(riffSavePath, deckID+".deck")
|
deckPath := filepath.Join(riffSavePath, deckID+".deck")
|
||||||
@ -785,10 +763,7 @@ func CreateDeck(name string) (deck *riff.Deck, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createDeck(name string) (deck *riff.Deck, err error) {
|
func createDeck(name string) (deck *riff.Deck, err error) {
|
||||||
if syncingStorages {
|
waitForSyncingStorages()
|
||||||
err = errors.New(Conf.Language(81))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
deckID := ast.NewNodeID()
|
deckID := ast.NewNodeID()
|
||||||
deck, err = createDeck0(name, deckID)
|
deck, err = createDeck0(name, deckID)
|
||||||
|
@ -831,7 +831,7 @@ var syncingFiles = sync.Map{}
|
|||||||
var syncingStorages = false
|
var syncingStorages = false
|
||||||
|
|
||||||
func waitForSyncingStorages() {
|
func waitForSyncingStorages() {
|
||||||
for i := 0; i < 30; i++ {
|
for i := 0; i < 60; i++ {
|
||||||
if syncingStorages {
|
if syncingStorages {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -189,6 +189,12 @@ func getTesseractVer() (ret string) {
|
|||||||
cmd = exec.Command(TesseractBin, "--version")
|
cmd = exec.Command(TesseractBin, "--version")
|
||||||
gulu.CmdAttr(cmd)
|
gulu.CmdAttr(cmd)
|
||||||
data, err = cmd.CombinedOutput()
|
data, err = cmd.CombinedOutput()
|
||||||
|
if nil != err && strings.Contains(err.Error(), "executable file not found") {
|
||||||
|
TesseractBin = "/opt/homebrew/bin/tesseract"
|
||||||
|
cmd = exec.Command(TesseractBin, "--version")
|
||||||
|
gulu.CmdAttr(cmd)
|
||||||
|
data, err = cmd.CombinedOutput()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if nil != err {
|
if nil != err {
|
||||||
|
Loading…
Reference in New Issue
Block a user