From 5991b116f3490da96f48f498ef8a3deb3c96ce79 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 22 Jan 2022 20:24:35 +0100 Subject: [PATCH] Log seen users --- .../tdlight/reactiveapi/PeriodicRestarter.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/tdlight/reactiveapi/PeriodicRestarter.java b/src/main/java/it/tdlight/reactiveapi/PeriodicRestarter.java index d65e79e..fb4e0c1 100644 --- a/src/main/java/it/tdlight/reactiveapi/PeriodicRestarter.java +++ b/src/main/java/it/tdlight/reactiveapi/PeriodicRestarter.java @@ -16,6 +16,7 @@ import java.time.Instant; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentHashMap.KeySetView; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; @@ -53,6 +54,12 @@ public class PeriodicRestarter { */ private final ConcurrentMap sessionAuthReady = new ConcurrentHashMap<>(); + /** + * Useful to register sessions at startup + * User id -> x + */ + private final KeySetView seenUsers = new ConcurrentHashMap().keySet(new Object()); + public PeriodicRestarter(ReactiveApi api, Duration interval, Set restartUserIds) { this.api = api; this.interval = interval; @@ -113,9 +120,12 @@ public class PeriodicRestarter { } } } else if (event.update() instanceof UpdateNewMessage) { - var wasReady = requireNonNullElse(this.sessionAuthReady.put(event.liveId(), true), false); - if (!wasReady) { - onSessionReady(event.liveId(), event.userId()); + if (seenUsers.add(event.userId())) { + LOG.info("Found a running bot that wasn't registered: {} (liveId: {})", event.userId(), event.liveId()); + var wasReady = requireNonNullElse(this.sessionAuthReady.put(event.liveId(), true), false); + if (!wasReady) { + onSessionReady(event.liveId(), event.userId()); + } } } })