Use string for url

This commit is contained in:
2025-01-11 20:19:26 +01:00
parent 0a40ccdc4f
commit 4c816e6309
2 changed files with 16 additions and 21 deletions

View File

@@ -7,7 +7,6 @@ import (
"io"
"log"
"net/http"
"net/url"
"os"
"path/filepath"
"regexp"
@@ -15,31 +14,21 @@ import (
)
type Addon struct {
Name string `json:"name"`
URL *url.URL `json:"url"`
Name string `json:"name"`
URL string `json:"url"`
}
var versionRegex = regexp.MustCompile(`(\d+\.\d+\.\d+)`)
func NewAddon(name, aurl string) *Addon {
a := &Addon{Name: name}
var err error
a.URL, err = url.Parse(aurl)
if err != nil {
Error.Printf("invalid url: %s", aurl)
return nil
}
return a
func (a *Addon) GetRemoteTocURL() string {
return fmt.Sprintf("%s/raw/branch/master/%s.toc", a.URL, a.Name)
}
func (a *Addon) GetRemoteTocURL() *url.URL {
return a.URL.JoinPath("raw", "branch", "master", a.Name+".toc")
}
func (a *Addon) GetRemoteReleaseURL() *url.URL {
return a.URL.JoinPath("media", "branch", "master", a.Name+".zip")
func (a *Addon) GetRemoteReleaseURL() string {
return fmt.Sprintf("%s/media/branch/master/%s.zip", a.URL, a.Name)
}
func (a *Addon) GetRemoteRelease() (body []byte, err error) {
url := a.GetRemoteReleaseURL()
response, err := http.Get(url.String())
response, err := http.Get(url)
if err != nil {
return nil, fmt.Errorf("error getting remote release: %w", err)
}
@@ -139,8 +128,8 @@ func (a *Addon) GetLocalTocPath() string {
}
func (a *Addon) GetRemoteVersion() (version string, err error) {
url := a.GetRemoteTocURL()
log.Printf("Fetching remote version from %s", url.String())
response, err := http.Get(url.String())
log.Printf("Fetching remote version from %s", url)
response, err := http.Get(url)
if err != nil {
return "", fmt.Errorf("error getting remote version: %w", err)
}

View File

@@ -30,9 +30,15 @@ func init() {
//go:embed all:frontend/dist
var assets embed.FS
var settingsFilePath string
var gamePath string
var addonService *AddonService
type Settings struct {
GamePath string `json:"gamePath"`
Addons map[string]*Addon `json:"addons"`
}
func main() {
addonService = NewAddonService()
gamePath = filepath.Join("C:\\", "Games", "WoWRuski")