From ce98e5d6e5631dc2280e8b4fb6ef3787070b4437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Sat, 13 Feb 2021 18:42:56 +0100 Subject: [PATCH] collapse repetitive changes of less than 10 minutes --- generate.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/generate.py b/generate.py index b2e6389..18e65af 100644 --- a/generate.py +++ b/generate.py @@ -180,6 +180,22 @@ def run_forever(address: str, period: int, ssid: str, output: str): if lease.mac not in (l.mac for l in leases): log.append(log_entry(ts, False, lease)) last_seen = leases + + collapse_thresh = timedelta(minutes=10) + while True: + duplicate_index = None + for idx in range(len(log)): + if idx + 1 == len(log): + continue + if log[idx].lease.mac == log[idx + 1].lease.mac and \ + not log[idx].state and log[idx + 1].state and \ + log[idx + 1].ts - log[idx].ts < collapse_thresh: + duplicate_index = idx + if duplicate_index is None: + break + log.pop(duplicate_index) # IN + log.pop(duplicate_index) # OUT + log.reverse() leaderboard_tmp = {}