mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-09-22 00:20:47 +02:00
🎨 Improve marketplace loading performance https://github.com/siyuan-note/siyuan/issues/10973 https://github.com/siyuan-note/siyuan/issues/11007
This commit is contained in:
parent
16c665bfa7
commit
afeea6a80e
7 changed files with 42 additions and 61 deletions
|
@ -17,7 +17,6 @@
|
|||
package bazaar
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
@ -184,14 +183,9 @@ func InstallIcon(repoURL, repoHash, installPath string, systemID string) error {
|
|||
if nil != err {
|
||||
return err
|
||||
}
|
||||
return installPackage(data, installPath)
|
||||
return installPackage(data, installPath, repoURLHash)
|
||||
}
|
||||
|
||||
func UninstallIcon(installPath string) error {
|
||||
if err := os.RemoveAll(installPath); nil != err {
|
||||
logging.LogErrorf("remove icon [%s] failed: %s", installPath, err)
|
||||
return errors.New("remove community icon failed")
|
||||
}
|
||||
//logging.Logger.Infof("uninstalled icon [%s]", installPath)
|
||||
return nil
|
||||
return uninstallPackage(installPath)
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package bazaar
|
|||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
@ -588,7 +589,26 @@ func incPackageDownloads(repoURLHash, systemID string) {
|
|||
}).Post(u)
|
||||
}
|
||||
|
||||
func installPackage(data []byte, installPath string) (err error) {
|
||||
func uninstallPackage(installPath string) (err error) {
|
||||
if err = os.RemoveAll(installPath); nil != err {
|
||||
logging.LogErrorf("remove [%s] failed: %s", installPath, err)
|
||||
return fmt.Errorf("remove community package [%s] failed", filepath.Base(installPath))
|
||||
}
|
||||
packageCache.Flush()
|
||||
return
|
||||
}
|
||||
|
||||
func installPackage(data []byte, installPath, repoURLHash string) (err error) {
|
||||
err = installPackage0(data, installPath)
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
|
||||
packageCache.Delete(strings.TrimPrefix(repoURLHash, "https://github.com/"))
|
||||
return
|
||||
}
|
||||
|
||||
func installPackage0(data []byte, installPath string) (err error) {
|
||||
tmpPackage := filepath.Join(util.TempDir, "bazaar", "package")
|
||||
if err = os.MkdirAll(tmpPackage, 0755); nil != err {
|
||||
return
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package bazaar
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
|
@ -27,7 +26,6 @@ import (
|
|||
|
||||
"github.com/dustin/go-humanize"
|
||||
ants "github.com/panjf2000/ants/v2"
|
||||
"github.com/siyuan-note/filelock"
|
||||
"github.com/siyuan-note/httpclient"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
|
@ -220,16 +218,11 @@ func InstallPlugin(repoURL, repoHash, installPath string, systemID string) error
|
|||
if nil != err {
|
||||
return err
|
||||
}
|
||||
return installPackage(data, installPath)
|
||||
return installPackage(data, installPath, repoURLHash)
|
||||
}
|
||||
|
||||
func UninstallPlugin(installPath string) error {
|
||||
if err := filelock.Remove(installPath); nil != err {
|
||||
logging.LogErrorf("remove plugin [%s] failed: %s", installPath, err)
|
||||
return errors.New("remove community plugin failed")
|
||||
}
|
||||
//logging.Logger.Infof("uninstalled plugin [%s]", installPath)
|
||||
return nil
|
||||
return uninstallPackage(installPath)
|
||||
}
|
||||
|
||||
func isIncompatiblePlugin(plugin *Plugin, currentFrontend string) bool {
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package bazaar
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
@ -27,7 +26,6 @@ import (
|
|||
|
||||
"github.com/dustin/go-humanize"
|
||||
"github.com/panjf2000/ants/v2"
|
||||
"github.com/siyuan-note/filelock"
|
||||
"github.com/siyuan-note/httpclient"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
|
@ -182,15 +180,11 @@ func InstallTemplate(repoURL, repoHash, installPath string, systemID string) err
|
|||
if nil != err {
|
||||
return err
|
||||
}
|
||||
return installPackage(data, installPath)
|
||||
return installPackage(data, installPath, repoURLHash)
|
||||
}
|
||||
|
||||
func UninstallTemplate(installPath string) error {
|
||||
if err := filelock.Remove(installPath); nil != err {
|
||||
logging.LogErrorf("remove template [%s] failed: %s", installPath, err)
|
||||
return errors.New("remove community template failed")
|
||||
}
|
||||
return nil
|
||||
return uninstallPackage(installPath)
|
||||
}
|
||||
|
||||
func filterLegacyTemplates(templates []*Template) (ret []*Template) {
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package bazaar
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
@ -186,14 +185,9 @@ func InstallTheme(repoURL, repoHash, installPath string, systemID string) error
|
|||
if nil != err {
|
||||
return err
|
||||
}
|
||||
return installPackage(data, installPath)
|
||||
return installPackage(data, installPath, repoURLHash)
|
||||
}
|
||||
|
||||
func UninstallTheme(installPath string) error {
|
||||
if err := os.RemoveAll(installPath); nil != err {
|
||||
logging.LogErrorf("remove theme [%s] failed: %s", installPath, err)
|
||||
return errors.New("remove community theme failed")
|
||||
}
|
||||
//logging.Logger.Infof("uninstalled theme [%s]", installPath)
|
||||
return nil
|
||||
return uninstallPackage(installPath)
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package bazaar
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
@ -26,7 +25,6 @@ import (
|
|||
|
||||
"github.com/dustin/go-humanize"
|
||||
ants "github.com/panjf2000/ants/v2"
|
||||
"github.com/siyuan-note/filelock"
|
||||
"github.com/siyuan-note/httpclient"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
|
@ -180,14 +178,9 @@ func InstallWidget(repoURL, repoHash, installPath string, systemID string) error
|
|||
if nil != err {
|
||||
return err
|
||||
}
|
||||
return installPackage(data, installPath)
|
||||
return installPackage(data, installPath, repoURLHash)
|
||||
}
|
||||
|
||||
func UninstallWidget(installPath string) error {
|
||||
if err := filelock.Remove(installPath); nil != err {
|
||||
logging.LogErrorf("remove widget [%s] failed: %s", installPath, err)
|
||||
return errors.New("remove community widget failed")
|
||||
}
|
||||
//logging.Logger.Infof("uninstalled widget [%s]", installPath)
|
||||
return nil
|
||||
return uninstallPackage(installPath)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue