cmd/rpcfetch: update timer field on apply ticker

This commit is contained in:
Yonah 2025-04-19 21:32:58 +09:00
parent 2c7d251298
commit 05b29229df
Signed by: yonah
SSH Key Fingerprint: SHA256:vnQvK8+XXH9Tbni2AV1a/8qdVK/zPcXw52GM0ruQvwA
2 changed files with 15 additions and 10 deletions

View File

@ -98,6 +98,10 @@ func apply() {
confLock.RUnlock()
if nonce, err := retry(&act, s); err != nil {
if errors.Is(err, syscall.EINTR) || errors.Is(err, discord.ErrNonce) {
log.Printf("abandoned further attempts on current tick: %v", err)
return
}
log.Fatalf("error setting activity: %s", err)
} else {
log.Printf("activity updated with nonce %s", nonce)
@ -109,20 +113,25 @@ var retryTicker = time.NewTicker(100 * time.Millisecond)
func retry(act *discord.Activity, s *applyState) (nonce string, err error) {
fyne.DoAndWait(func() { uiUpdateClientInfo(s) })
i := 0
for range retryTicker.C {
nonce, err = d.SetActivity(act)
if err == nil {
if i == 5 {
break
}
nonce, err = d.SetActivity(act)
if err == nil {
fyne.DoAndWait(func() { uiSetFailureState(true) })
break
}
i++
if errors.Is(err, syscall.EINTR) || errors.Is(err, discord.ErrNonce) {
log.Println("retrying in 100 milliseconds...")
log.Printf("retrying in 100 milliseconds...")
} else {
log.Printf("cannot set activity: %v", err)
}
fyne.DoAndWait(func() { uiSetFailureState(false) })
}
fyne.DoAndWait(func() { uiSetFailureState(true) })
return
}

View File

@ -375,15 +375,11 @@ func ui() error {
presetUp.SetIcon(theme.MoveUpIcon())
presetDown.SetIcon(theme.MoveDownIcon())
go func() {
for range time.Tick(time.Second) {
fyne.DoAndWait(func() { statusTimer.SetText(time.Now().UTC().Sub(launchTime).Round(time.Second).String()) })
}
}()
active.Store(true)
go func() {
for range time.Tick(1 * time.Second) {
fyne.DoAndWait(func() { statusTimer.SetText(time.Now().UTC().Sub(launchTime).Round(time.Second).String()) })
if active.Load() {
apply()
}