update checker

This commit is contained in:
Aynakeya
2023-02-21 16:21:29 -08:00
parent 6f2349e17b
commit 02cc9de11a
14 changed files with 182 additions and 10 deletions

41
internal/application.go Normal file
View File

@@ -0,0 +1,41 @@
package internal
import (
"AynaLivePlayer/common/config"
"AynaLivePlayer/core/model"
"errors"
"fmt"
"github.com/go-resty/resty/v2"
"github.com/tidwall/gjson"
)
type AppBilibiliChannel struct {
latestVersion model.Version
}
func (app *AppBilibiliChannel) Version() model.VersionInfo {
return model.VersionInfo{
model.Version(config.Version), "",
}
}
func (app *AppBilibiliChannel) LatestVersion() model.VersionInfo {
return model.VersionInfo{
app.latestVersion,
fmt.Sprintf("v%s\n\n[https://play-live.bilibili.com/details/1661006726438](https://play-live.bilibili.com/details/1661006726438)", app.latestVersion),
}
}
func (app *AppBilibiliChannel) CheckUpdate() error {
uri := "https://api.live.bilibili.com/xlive/virtual-interface/v1/app/detail?app_id=1661006726438"
resp, err := resty.New().R().Get(uri)
if err != nil {
return err
}
lv := model.VersionFromString(gjson.ParseBytes(resp.Body()).Get("data.version").String())
if lv == 0 {
return errors.New("failed to get latest version")
}
app.latestVersion = lv
return nil
}

View File

@@ -5,6 +5,7 @@ import (
)
type Controller struct {
app adapter.IApplication `ini:"-"`
liveroom adapter.ILiveRoomController `ini:"-"`
player adapter.IPlayController `ini:"-"`
lyric adapter.ILyricLoader `ini:"-"`
@@ -24,6 +25,7 @@ func NewController(
provider adapter.IProviderController, plugin adapter.IPluginController,
log adapter.ILogger) adapter.IControlBridge {
cc := &Controller{
app: &AppBilibiliChannel{},
liveroom: liveroom,
player: player,
playlist: playlist,
@@ -34,6 +36,10 @@ func NewController(
return cc
}
func (c *Controller) App() adapter.IApplication {
return c.app
}
func (c *Controller) LiveRooms() adapter.ILiveRoomController {
return c.liveroom
}