diff --git a/internal/activity/activity.go b/internal/activity/activity.go index 9430085..488de9d 100644 --- a/internal/activity/activity.go +++ b/internal/activity/activity.go @@ -2,12 +2,13 @@ package activity import ( "errors" + "fmt" "sync" "time" "gitlab.com/whom/bingobot/internal/config" - "gitlab.com/whom/bingobot/internal/state" "gitlab.com/whom/bingobot/internal/logging" + "gitlab.com/whom/bingobot/internal/state" ) /* Activity module @@ -18,7 +19,7 @@ const ( ActivityModuleStartFail = "failed to start activity module" ) -var currentUserActivity map[string][]state.UserActiveEvent +var currentUserActivity = make(map[string][]state.UserActiveEvent) var userActivityLock sync.RWMutex func Start() error { @@ -38,6 +39,10 @@ func Start() error { user := emap[state.UserEventUserKey] etime := ev.Time() delta := time.Since(etime).Hours() / float64(24) + logging.Debug(fmt.Sprintf( + "processing UserActive event for %s", user, + )) + if delta <= float64(config.Get().UserEventLifespanDays) { new := []state.UserActiveEvent{ev.(state.UserActiveEvent)} @@ -46,6 +51,7 @@ func Start() error { if found { new = append(new, current...) } + currentUserActivity[user] = new userActivityLock.Unlock() } else { logging.Warn("recieved expired useractive event") diff --git a/internal/confession/confession.go b/internal/confession/confession.go index 81babdb..d76aa38 100644 --- a/internal/confession/confession.go +++ b/internal/confession/confession.go @@ -37,7 +37,7 @@ func Start() error { go func() { for { ev := <- ch - logging.Info("recieved new confessional channel link") + logging.Debug("recieved new confessional channel link") e := ev.(state.ConfessionsChannelLinkEvent) linkLock.Lock() confessionChannelLinks[e.GuildID] = e diff --git a/internal/discord/activity.go b/internal/discord/activity.go index 62329f3..002f3b4 100644 --- a/internal/discord/activity.go +++ b/internal/discord/activity.go @@ -42,7 +42,7 @@ func NewActivityTimer(uid string) *UserActivityTimer { Start() initializes the timer and calls run() */ func (t *UserActivityTimer) Start(ctx context.Context) { - logging.Info("starting voiceActivityTimer", "uid", t.UID) + logging.Debug("starting voiceActivityTimer", "uid", t.UID) t.sleepDuration = time.Millisecond * time.Duration(config.Get().VoiceActivityTimerSleepIntervalMillis) activityTimerDuration := time.Second * time.Duration(config.Get().VoiceActivityThresholdSeconds) @@ -89,7 +89,7 @@ func (t *UserActivityTimer) run() { } // the timer's context has been cancelled or deadline expired. - logging.Info("voiceActivityTimer stopping", "uid", t.UID, "reason", context.Cause(t.ctx)) + logging.Debug("voiceActivityTimer stopping", "uid", t.UID, "reason", context.Cause(t.ctx)) if context.Cause(t.ctx) == ErrTimerExpired { /* @@ -147,5 +147,5 @@ func emitUserActiveEvent(uid string) { return } - logging.Info("published UserActiveEvent", "uid", uid) + logging.Debug("published UserActiveEvent", "uid", uid) } diff --git a/main.go b/main.go index a91fdb4..96e2e36 100644 --- a/main.go +++ b/main.go @@ -41,13 +41,11 @@ func main() { logging.Info("startup: starting activity module") if err := activity.Start(); err != nil { - // TODO: handle gracefully and continue? log.Fatalf("failed to start activity module: %s", err.Error()) } logging.Info("startup: starting confession module") if err := confession.Start(); err != nil { - // TODO: handle gracefully and continue? log.Fatalf("failed to start confession module: %s", err.Error()) }