diff --git a/app.go b/app.go index ce18459..98af3b2 100644 --- a/app.go +++ b/app.go @@ -16,6 +16,7 @@ import ( "go-stock/backend/data" "go-stock/backend/db" "go-stock/backend/logger" + "go-stock/backend/models" "strings" "time" ) @@ -48,18 +49,21 @@ func (a *App) startup(ctx context.Context) { go onExit(a) }) - //检查新版本 - go func() { - config := data.NewSettingsApi(&data.Settings{}).GetConfig() - if config.CheckUpdate { - checkUpdate(a) - } - }() - } func checkUpdate(a *App) { - + releaseVersion := &models.GitHubReleaseVersion{} + _, err := resty.New().R(). + SetResult(releaseVersion). + Get("https://api.github.com/repos/ArvinLovegood/go-stock/releases/latest") + if err != nil { + logger.SugaredLogger.Errorf("get github release version error:%s", err.Error()) + return + } + logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName) + if releaseVersion.TagName != Version { + go runtime.EventsEmit(a.ctx, "updateVersion", releaseVersion) + } } // domReady is called after front-end resources have been loaded @@ -94,6 +98,11 @@ func (a *App) domReady(ctx context.Context) { }() go runtime.EventsEmit(a.ctx, "telegraph", refreshTelegraphList()) go MonitorStockPrices(a) + + //检查新版本 + go func() { + checkUpdate(a) + }() } func refreshTelegraphList() *[]string { diff --git a/backend/models/models.go b/backend/models/models.go new file mode 100644 index 0000000..1681b11 --- /dev/null +++ b/backend/models/models.go @@ -0,0 +1,83 @@ +package models + +import "time" + +// @Author spark +// @Date 2025/2/6 15:25 +// @Desc +//----------------------------------------------------------------------------------- + +type GitHubReleaseVersion struct { + Url string `json:"url"` + AssetsUrl string `json:"assets_url"` + UploadUrl string `json:"upload_url"` + HtmlUrl string `json:"html_url"` + Id int `json:"id"` + Author struct { + Login string `json:"login"` + Id int `json:"id"` + NodeId string `json:"node_id"` + AvatarUrl string `json:"avatar_url"` + GravatarId string `json:"gravatar_id"` + Url string `json:"url"` + HtmlUrl string `json:"html_url"` + FollowersUrl string `json:"followers_url"` + FollowingUrl string `json:"following_url"` + GistsUrl string `json:"gists_url"` + StarredUrl string `json:"starred_url"` + SubscriptionsUrl string `json:"subscriptions_url"` + OrganizationsUrl string `json:"organizations_url"` + ReposUrl string `json:"repos_url"` + EventsUrl string `json:"events_url"` + ReceivedEventsUrl string `json:"received_events_url"` + Type string `json:"type"` + UserViewType string `json:"user_view_type"` + SiteAdmin bool `json:"site_admin"` + } `json:"author"` + NodeId string `json:"node_id"` + TagName string `json:"tag_name"` + TargetCommitish string `json:"target_commitish"` + Name string `json:"name"` + Draft bool `json:"draft"` + Prerelease bool `json:"prerelease"` + CreatedAt time.Time `json:"created_at"` + PublishedAt time.Time `json:"published_at"` + Assets []struct { + Url string `json:"url"` + Id int `json:"id"` + NodeId string `json:"node_id"` + Name string `json:"name"` + Label string `json:"label"` + Uploader struct { + Login string `json:"login"` + Id int `json:"id"` + NodeId string `json:"node_id"` + AvatarUrl string `json:"avatar_url"` + GravatarId string `json:"gravatar_id"` + Url string `json:"url"` + HtmlUrl string `json:"html_url"` + FollowersUrl string `json:"followers_url"` + FollowingUrl string `json:"following_url"` + GistsUrl string `json:"gists_url"` + StarredUrl string `json:"starred_url"` + SubscriptionsUrl string `json:"subscriptions_url"` + OrganizationsUrl string `json:"organizations_url"` + ReposUrl string `json:"repos_url"` + EventsUrl string `json:"events_url"` + ReceivedEventsUrl string `json:"received_events_url"` + Type string `json:"type"` + UserViewType string `json:"user_view_type"` + SiteAdmin bool `json:"site_admin"` + } `json:"uploader"` + ContentType string `json:"content_type"` + State string `json:"state"` + Size int `json:"size"` + DownloadCount int `json:"download_count"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + BrowserDownloadUrl string `json:"browser_download_url"` + } `json:"assets"` + TarballUrl string `json:"tarball_url"` + ZipballUrl string `json:"zipball_url"` + Body string `json:"body"` +} diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index 09b13cd..e06ec7c 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -1,5 +1,5 @@