Rex model

This commit is contained in:
Imbus 2025-01-26 11:20:57 +01:00
parent 8dea74d4a0
commit 7b4fb82ab7
4 changed files with 93 additions and 1 deletions

3
rex_model/go.mod Normal file
View file

@ -0,0 +1,3 @@
module rex_model
go 1.23.5

35
rex_model/index.go Normal file
View file

@ -0,0 +1,35 @@
package rex_model
// TODO: Remove
var AddonIndex = []string{
"AtlasLoot",
"Bartender4",
"Deadly Boss Mods",
"Details! Damage Meter",
"WeakAuras",
"ElvUI",
"BigWigs",
"Recount",
"GatherMate2",
"TomTom",
"Questie",
"TradeSkillMaster",
"HandyNotes",
"Bagnon",
"Threat Plates",
"GTFO",
"Plater Nameplates",
"Rarity",
"Pawn",
"Auctioneer",
"Shadowed Unit Frames",
"SexyMap",
"TidyPlates",
"MoveAnything",
"Postal",
"OmniCC",
"Leatrix Plus",
"SimulationCraft",
"VuhDo",
"KuiNameplates",
}

54
rex_model/repo.go Normal file
View file

@ -0,0 +1,54 @@
package rex_model
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type Repo interface {
GetLatestTag() (Tag, error)
}
// Currently only for github
type GithubRepo struct {
Owner string `json:"owner"`
Repo string `json:"repo"`
}
func (r GithubRepo) GetLatestTag() (Tag, error) {
url := fmt.Sprintf("https://api.github.com/repos/%s/%s/tags", r.Owner, r.Repo)
resp, err := http.Get(url)
if err != nil {
log.Printf("Failed to fetch releases for %s/%s: %v", r.Owner, r.Repo, err)
return Tag{}, err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
log.Printf("Unexpected response status for %s/%s: %d", r.Owner, r.Repo, resp.StatusCode)
return Tag{}, fmt.Errorf("unexpected response status: %d", resp.StatusCode)
}
var tags = []Tag{}
if err := json.NewDecoder(resp.Body).Decode(&tags); err != nil {
log.Printf("Failed to decode response for %s/%s: %v", r.Owner, r.Repo, err)
return Tag{}, err
}
return tags[0], nil
}
type Commit struct {
Sha string `json:"sha"`
URL string `json:"url"`
}
type Tag struct {
Name string `json:"name"`
ZipballURL string `json:"zipball_url"`
TarballURL string `json:"tarball_url"`
Commit Commit `json:"commit"`
NodeID string `json:"node_id"`
}

View file

@ -1,4 +1,4 @@
package model package rex_model
// Recieved from the client // Recieved from the client
type UpdateCheck struct { type UpdateCheck struct {