Kaynağa Gözat

从配置的读取和保存进行 Emby Address 的校验和剔除多余的 / fix #203

Signed-off-by: allan716 <[email protected]>
allan716 3 yıl önce
ebeveyn
işleme
765b462b9d
2 değiştirilmiş dosya ile 31 ekleme ve 2 silme
  1. 12 0
      internal/pkg/my_util/util.go
  2. 19 2
      internal/pkg/settings/settings.go

+ 12 - 0
internal/pkg/my_util/util.go

@@ -16,8 +16,10 @@ import (
 	"io"
 	"math"
 	"net/http"
+	"net/url"
 	"os"
 	"os/exec"
+	"path"
 	"path/filepath"
 	"regexp"
 	"runtime"
@@ -610,3 +612,13 @@ func GenerateAccessToken() string {
 	u4 := uuid.New()
 	return u4.String()
 }
+
+func UrlJoin(hostUrl, subUrl string) (string, error) {
+
+	u, err := url.Parse(hostUrl)
+	if err != nil {
+		return "", err
+	}
+	u.Path = path.Join(u.Path, subUrl)
+	return u.String(), nil
+}

+ 19 - 2
internal/pkg/settings/settings.go

@@ -4,6 +4,7 @@ import (
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/global_value"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/strcut_json"
 	"github.com/huandu/go-clone"
+	"net/url"
 	"os"
 	"path/filepath"
 	"strings"
@@ -61,8 +62,6 @@ func SetFullNewSettings(inSettings *Settings) error {
 	_settings = inSettings
 	_settings.configFPath = nowConfigFPath
 
-	_settings.EmbySettings.AddressUrl = removeSuffixAddressSlash(_settings.EmbySettings.AddressUrl)
-
 	return _settings.Save()
 }
 
@@ -82,10 +81,28 @@ func NewSettings() *Settings {
 }
 
 func (s *Settings) Read() error {
+
+	// 需要检查 url 是否正确
+	newEmbyAddressUrl := removeSuffixAddressSlash(s.EmbySettings.AddressUrl)
+	_, err := url.Parse(newEmbyAddressUrl)
+	if err != nil {
+		return err
+	}
+	s.EmbySettings.AddressUrl = newEmbyAddressUrl
+
 	return strcut_json.ToStruct(s.configFPath, s)
 }
 
 func (s *Settings) Save() error {
+
+	// 需要检查 url 是否正确
+	newEmbyAddressUrl := removeSuffixAddressSlash(s.EmbySettings.AddressUrl)
+	_, err := url.Parse(newEmbyAddressUrl)
+	if err != nil {
+		return err
+	}
+	s.EmbySettings.AddressUrl = newEmbyAddressUrl
+
 	return strcut_json.ToFile(s.configFPath, s)
 }