wordle/update/update.go

51 lines
940 B
Go

package update
import (
"encoding/json"
"fmt"
"github.com/Masterminds/semver/v3"
"io"
"net/http"
)
func GetGiteaRelease(instance string, owner string, repo string) *semver.Version {
res, err := http.Get(fmt.Sprintf("https://%v/api/v1/repos/%v/%v/releases", instance, owner, repo))
if err != nil {
return nil
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
var data []struct {
TagName string `json:"tag_name"`
}
err = json.Unmarshal(body, &data)
if err != nil || len(data) < 1 {
return nil
}
v, err := semver.NewVersion(data[0].TagName)
if err != nil {
return nil
}
return v
}
func CheckVersion(latest *semver.Version, current string) string {
if latest == nil {
return ""
}
current1, err := semver.NewVersion(current)
if err != nil {
return ""
}
if latest.GreaterThan(current1) {
return fmt.Sprintf("A new version, %s, is available for download", latest)
} else {
return ""
}
}