From 581273370de2029c8258564ab2a180eea93f0a0d Mon Sep 17 00:00:00 2001 From: ari melody Date: Tue, 17 Jun 2025 02:01:06 +0100 Subject: [PATCH] improvements to LIVE tracker --- controller/twitch.go | 3 --- main.go | 8 +++++--- model/appstate.go | 4 ++-- public/style/index.css | 41 +++++++++++++++++++++++++++++++++++------ public/style/main.css | 1 + view/index.go | 2 +- views/index.html | 2 +- 7 files changed, 45 insertions(+), 16 deletions(-) diff --git a/controller/twitch.go b/controller/twitch.go index f7dc509..98d3b9a 100644 --- a/controller/twitch.go +++ b/controller/twitch.go @@ -4,7 +4,6 @@ import ( "arimelody-web/model" "bytes" "encoding/json" - "fmt" "net/http" "net/url" "time" @@ -63,8 +62,6 @@ func GetTwitchStatus(app *model.AppState, broadcaster string) (*model.TwitchStre return lastStreamState, nil } - fmt.Print("MAKING COSTLY REQUEST TO TWITCH.TV API...\n") - requestUrl, _ := url.Parse(TWITCH_API_BASE + "streams") requestUrl.RawQuery = url.Values{ "user_login": []string{ broadcaster }, diff --git a/main.go b/main.go index 8f37639..0234d79 100644 --- a/main.go +++ b/main.go @@ -460,9 +460,11 @@ func main() { // handle DB migrations controller.CheckDBVersionAndMigrate(app.DB) - err = controller.TwitchSetup(&app) - if err != nil { - fmt.Fprintf(os.Stderr, "WARN: Failed to set up Twitch integration: %v\n", err) + if app.Config.Twitch != nil { + err = controller.TwitchSetup(&app) + if err != nil { + fmt.Fprintf(os.Stderr, "WARN: Failed to set up Twitch integration: %v\n", err) + } } // initial invite code diff --git a/model/appstate.go b/model/appstate.go index 861a991..3a1c230 100644 --- a/model/appstate.go +++ b/model/appstate.go @@ -34,8 +34,8 @@ type ( DataDirectory string `toml:"data_dir"` TrustedProxies []string `toml:"trusted_proxies"` DB DBConfig `toml:"db"` - Discord DiscordConfig `toml:"discord"` - Twitch TwitchConfig `toml:"twitch"` + Discord *DiscordConfig `toml:"discord"` + Twitch *TwitchConfig `toml:"twitch"` } AppState struct { diff --git a/public/style/index.css b/public/style/index.css index f60fdb7..6efe241 100644 --- a/public/style/index.css +++ b/public/style/index.css @@ -231,11 +231,6 @@ div#web-buttons { box-shadow: 0 0 8px var(--primary); } -#live-banner h2 { - margin: 0 0 .4em 0; - color: var(--on-background); -} - #live-banner p { margin: 0; } @@ -252,7 +247,11 @@ div#web-buttons { } .live-preview div:first-of-type { - text-align: center; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + gap: .3em; } .live-thumbnail { @@ -283,6 +282,36 @@ div#web-buttons { overflow-x: hidden; } +#live-banner h2 { + margin: 0; + color: var(--on-background); + font-family: 'Inter', sans-serif; + font-weight: 800; + font-style: italic; +} + +.live-pinger { + width: .5em; + height: .5em; + margin: .1em .2em; + display: inline-block; + border-radius: 100%; + background-color: var(--primary); + box-shadow: 0 0 4px var(--primary); + animation: live-pinger-pulse 1s infinite alternate ease-in-out; +} + +@keyframes live-pinger-pulse { + from { + opacity: .8; + transform: scale(1.0); + } + to { + opacity: 1; + transform: scale(1.1); + } +} + .live-game { overflow: hidden; text-wrap: nowrap; diff --git a/public/style/main.css b/public/style/main.css index 4e9e113..680ee2b 100644 --- a/public/style/main.css +++ b/public/style/main.css @@ -3,6 +3,7 @@ @import url("/style/footer.css"); @import url("/style/prideflag.css"); @import url("/style/cursor.css"); +@import url("/font/inter/inter.css"); @font-face { font-family: "Monaspace Argon"; diff --git a/view/index.go b/view/index.go index 995de44..b6e3891 100644 --- a/view/index.go +++ b/view/index.go @@ -22,7 +22,7 @@ func IndexHandler(app *model.AppState) http.Handler { var err error var twitchStatus *model.TwitchStreamInfo = nil - if len(app.Config.Twitch.Broadcaster) > 0 { + if app.Twitch != nil && len(app.Config.Twitch.Broadcaster) > 0 { twitchStatus, err = controller.GetTwitchStatus(app, app.Config.Twitch.Broadcaster) if err != nil { fmt.Fprintf(os.Stderr, "WARN: Failed to get Twitch status for %s: %v\n", app.Config.Twitch.Broadcaster, err) diff --git a/views/index.html b/views/index.html index 98a862c..6985f6c 100644 --- a/views/index.html +++ b/views/index.html @@ -24,13 +24,13 @@
{{if .TwitchStatus}}
-

ari is LIVE right now!

livestream thumbnail join in!
+

ari melody LIVE

streaming: {{.TwitchStatus.GameName}}

{{.TwitchStatus.Title}}

{{.TwitchStatus.ViewerCount}} viewers