⬆️ 数据仓库迁出时忽略 .tmp 临时文件 https://github.com/siyuan-note/siyuan/issues/7087

This commit is contained in:
Liang Ding 2023-01-16 16:55:00 +08:00
parent 928942951b
commit 15cd499f56
No known key found for this signature in database
GPG key ID: 136F30F901A2231D

View file

@ -105,34 +105,63 @@ func AutoOCRAssets() {
}
for {
assetsPath := GetDataAssetsAbsPath()
assets := getUnOCRAssetsAbsPaths()
waitGroup := &sync.WaitGroup{}
lock := &sync.Mutex{}
p, _ := ants.NewPoolWithFunc(4, func(arg interface{}) {
defer waitGroup.Done()
assetAbsPath := arg.(string)
text := Tesseract(assetAbsPath)
p := strings.TrimPrefix(assetAbsPath, assetsPath)
p = "assets" + filepath.ToSlash(p)
lock.Lock()
assetsTexts[p] = text
lock.Unlock()
assetsTextsChanged = true
})
for _, assetAbsPath := range assets {
waitGroup.Add(1)
p.Invoke(assetAbsPath)
}
waitGroup.Wait()
p.Release()
autoOCRAssets()
time.Sleep(7 * time.Second)
}
}
func autoOCRAssets() {
defer logging.Recover()
assetsPath := GetDataAssetsAbsPath()
assets := getUnOCRAssetsAbsPaths()
waitGroup := &sync.WaitGroup{}
p, _ := ants.NewPoolWithFunc(4, func(arg interface{}) {
defer waitGroup.Done()
assetAbsPath := arg.(string)
text := Tesseract(assetAbsPath)
p := strings.TrimPrefix(assetAbsPath, assetsPath)
p = "assets" + filepath.ToSlash(p)
assetsTextsLock.Lock()
assetsTexts[p] = text
assetsTextsLock.Unlock()
assetsTextsChanged = true
})
for _, assetAbsPath := range assets {
waitGroup.Add(1)
p.Invoke(assetAbsPath)
}
waitGroup.Wait()
p.Release()
cleanNotFoundAssetsTexts()
}
func cleanNotFoundAssetsTexts() {
tmp := assetsTexts
assetsPath := GetDataAssetsAbsPath()
var toRemoves []string
for asset, _ := range tmp {
assetAbsPath := strings.TrimPrefix(asset, "assets")
assetAbsPath = filepath.Join(assetsPath, assetAbsPath)
if !gulu.File.IsExist(assetAbsPath) {
toRemoves = append(toRemoves, asset)
}
}
assetsTextsLock.Lock()
for _, asset := range toRemoves {
delete(assetsTexts, asset)
assetsTextsChanged = true
}
assetsTextsLock.Unlock()
return
}
func getUnOCRAssetsAbsPaths() (ret []string) {
assetsPath := GetDataAssetsAbsPath()
var assetsPaths []string