about summary refs log tree commit diff
path: root/pkg/discord/heartbeat.go
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-04-08 12:54:09 +0200
committerMel <einebeere@gmail.com>2022-04-08 12:54:09 +0200
commit24f175df385466e04ef21d153713d2ecf3a9733b (patch)
tree1c5c6253a22804697462d3fb9e9f3189af15c286 /pkg/discord/heartbeat.go
parent18389cf659c40cebc4572924929abfcec3c6b875 (diff)
downloadjinx-24f175df385466e04ef21d153713d2ecf3a9733b.tar.zst
jinx-24f175df385466e04ef21d153713d2ecf3a9733b.zip
Subdivide discord into packages
Diffstat (limited to 'pkg/discord/heartbeat.go')
-rw-r--r--pkg/discord/heartbeat.go71
1 files changed, 0 insertions, 71 deletions
diff --git a/pkg/discord/heartbeat.go b/pkg/discord/heartbeat.go
deleted file mode 100644
index 5c4a955..0000000
--- a/pkg/discord/heartbeat.go
+++ /dev/null
@@ -1,71 +0,0 @@
-package discord
-
-import (
-	"context"
-	"math/rand"
-	"time"
-
-	"github.com/rs/zerolog"
-)
-
-type Heartbeat interface {
-	Start(ctx context.Context, interval uint64)
-
-	ForceHeartbeat()
-	Ack()
-}
-
-var _ Heartbeat = &HeartbeatImpl{}
-
-type HeartbeatImpl struct {
-	ctx     context.Context
-	logger  *zerolog.Logger
-	gateway Gateway
-}
-
-func NewHeartbeat(logger *zerolog.Logger, gateway Gateway) *HeartbeatImpl {
-	return &HeartbeatImpl{
-		ctx:     nil,
-		logger:  logger,
-		gateway: gateway,
-	}
-}
-
-func (h *HeartbeatImpl) Start(ctx context.Context, interval uint64) {
-	h.ctx = ctx
-	go h.heartbeatRoutine(interval)
-}
-
-func (h *HeartbeatImpl) ForceHeartbeat() {
-	h.gateway.Heartbeat()
-}
-
-func (h *HeartbeatImpl) Ack() {
-	// What do we do here?
-	h.logger.Debug().Msg("received heartbeat ack")
-}
-
-func (h *HeartbeatImpl) heartbeatRoutine(interval uint64) {
-	h.logger.Debug().Msgf("beating heart every %dms", interval)
-
-	// REF: heartbeat_interval * jitter
-	jitter := rand.Intn(int(interval))
-	time.Sleep(time.Duration(jitter) * time.Millisecond)
-
-	ticker := time.NewTicker(time.Duration(interval) * time.Millisecond)
-	defer ticker.Stop()
-
-	for {
-		h.logger.Debug().Msg("sending heartbeat")
-		if err := h.gateway.Heartbeat(); err != nil {
-			h.logger.Error().Err(err).Msg("failed to send heartbeat")
-		}
-
-		select {
-		case <-h.ctx.Done():
-			return
-		case <-ticker.C:
-			continue
-		}
-	}
-}