ForcePilot/backend/package/yuxi/channel/extensions/minecraft/dedupe.py

27 lines
662 B
Python
Raw Normal View History

import time
DEDUP_TTL = 30.0
MAX_DEDUP_ENTRIES = 200
_dedup_cache: dict[int, float] = {}
def is_duplicate(message_index: int) -> bool:
now = time.monotonic()
if message_index in _dedup_cache:
if now - _dedup_cache[message_index] < DEDUP_TTL:
return True
_dedup_cache[message_index] = now
if len(_dedup_cache) > MAX_DEDUP_ENTRIES:
stale = [k for k, v in _dedup_cache.items() if now - v > DEDUP_TTL]
for k in stale:
del _dedup_cache[k]
return False
def mark_seen(message_index: int) -> None:
_dedup_cache[message_index] = time.monotonic()
def reset() -> None:
_dedup_cache.clear()