generated from dave/wails-template
Use string for url
This commit is contained in:
31
addon.go
31
addon.go
@@ -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)
|
||||
}
|
||||
|
6
main.go
6
main.go
@@ -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")
|
||||
|
Reference in New Issue
Block a user