generated from dave/wails-template
Use string for url
This commit is contained in:
29
addon.go
29
addon.go
@@ -7,7 +7,6 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -16,30 +15,20 @@ import (
|
|||||||
|
|
||||||
type Addon struct {
|
type Addon struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
URL *url.URL `json:"url"`
|
URL string `json:"url"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var versionRegex = regexp.MustCompile(`(\d+\.\d+\.\d+)`)
|
var versionRegex = regexp.MustCompile(`(\d+\.\d+\.\d+)`)
|
||||||
|
|
||||||
func NewAddon(name, aurl string) *Addon {
|
func (a *Addon) GetRemoteTocURL() string {
|
||||||
a := &Addon{Name: name}
|
return fmt.Sprintf("%s/raw/branch/master/%s.toc", a.URL, a.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) GetRemoteReleaseURL() string {
|
||||||
func (a *Addon) GetRemoteTocURL() *url.URL {
|
return fmt.Sprintf("%s/media/branch/master/%s.zip", a.URL, a.Name)
|
||||||
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) GetRemoteRelease() (body []byte, err error) {
|
func (a *Addon) GetRemoteRelease() (body []byte, err error) {
|
||||||
url := a.GetRemoteReleaseURL()
|
url := a.GetRemoteReleaseURL()
|
||||||
response, err := http.Get(url.String())
|
response, err := http.Get(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error getting remote release: %w", err)
|
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) {
|
func (a *Addon) GetRemoteVersion() (version string, err error) {
|
||||||
url := a.GetRemoteTocURL()
|
url := a.GetRemoteTocURL()
|
||||||
log.Printf("Fetching remote version from %s", url.String())
|
log.Printf("Fetching remote version from %s", url)
|
||||||
response, err := http.Get(url.String())
|
response, err := http.Get(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("error getting remote version: %w", err)
|
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
|
//go:embed all:frontend/dist
|
||||||
var assets embed.FS
|
var assets embed.FS
|
||||||
|
var settingsFilePath string
|
||||||
var gamePath string
|
var gamePath string
|
||||||
var addonService *AddonService
|
var addonService *AddonService
|
||||||
|
|
||||||
|
type Settings struct {
|
||||||
|
GamePath string `json:"gamePath"`
|
||||||
|
Addons map[string]*Addon `json:"addons"`
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
addonService = NewAddonService()
|
addonService = NewAddonService()
|
||||||
gamePath = filepath.Join("C:\\", "Games", "WoWRuski")
|
gamePath = filepath.Join("C:\\", "Games", "WoWRuski")
|
||||||
|
Reference in New Issue
Block a user