This commit is contained in:
Liang Ding 2022-06-13 21:06:48 +08:00
parent 39d0a9b08f
commit 851483c5d2
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
3 changed files with 52 additions and 11 deletions

View File

@ -17,8 +17,8 @@
package api package api
import ( import (
"encoding/hex"
"net/http" "net/http"
"os"
"time" "time"
"github.com/88250/gulu" "github.com/88250/gulu"
@ -44,21 +44,31 @@ func indexRepo(c *gin.Context) {
} }
} }
func importRepoKey(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
util.PushMsg(model.Conf.Language(136), 1000*7)
hexKey := arg["key"].(string)
if err := model.IndexRepo(hexKey); nil != err {
ret.Code = -1
ret.Msg = model.Conf.Language(137)
return
}
time.Sleep(1 * time.Second)
util.PushMsg(model.Conf.Language(138), 3000)
}
func initRepoKey(c *gin.Context) { func initRepoKey(c *gin.Context) {
ret := gulu.Ret.NewResult() ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret) defer c.JSON(http.StatusOK, ret)
util.PushMsg(model.Conf.Language(136), 1000*7) util.PushMsg(model.Conf.Language(136), 1000*7)
if err := os.RemoveAll(model.Conf.Repo.GetSaveDir()); nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
if err := os.MkdirAll(model.Conf.Repo.GetSaveDir(), 0755); nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
if err := model.InitRepoKey(); nil != err { if err := model.InitRepoKey(); nil != err {
ret.Code = -1 ret.Code = -1
ret.Msg = model.Conf.Language(137) ret.Msg = model.Conf.Language(137)
@ -67,4 +77,8 @@ func initRepoKey(c *gin.Context) {
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
util.PushMsg(model.Conf.Language(138), 3000) util.PushMsg(model.Conf.Language(138), 3000)
ret.Data = map[string]interface{}{
"key": hex.EncodeToString(model.Conf.Repo.Key),
}
} }

View File

@ -247,6 +247,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME) ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME)
ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey) ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey)
ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey)
ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo) ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo)
ginServer.Handle("POST", "/api/notification/pushMsg", model.CheckAuth, pushMsg) ginServer.Handle("POST", "/api/notification/pushMsg", model.CheckAuth, pushMsg)

View File

@ -18,14 +18,40 @@ package model
import ( import (
"crypto/rand" "crypto/rand"
"encoding/hex"
"errors" "errors"
"os"
"github.com/siyuan-note/dejavu" "github.com/siyuan-note/dejavu"
"github.com/siyuan-note/encryption" "github.com/siyuan-note/encryption"
"github.com/siyuan-note/siyuan/kernel/util" "github.com/siyuan-note/siyuan/kernel/util"
) )
func ImportRepoKey(hexKey string) (err error) {
key, err := hex.DecodeString(hexKey)
if nil != err {
return
}
Conf.Repo.Key = key
Conf.Save()
if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
return
}
if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err {
return
}
return
}
func InitRepoKey() (err error) { func InitRepoKey() (err error) {
if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
return
}
if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err {
return
}
randomBytes := make([]byte, 16) randomBytes := make([]byte, 16)
_, err = rand.Read(randomBytes) _, err = rand.Read(randomBytes)
if nil != err { if nil != err {