ForcePilot/backend/package/yuxi/channels/adapters/matrix/dedupe.py
Kris 2063145ce1 feat(matrix): 新增完整的Matrix适配器工具集
新增了20+个Matrix相关工具模块,包含线程处理、自动加入、消息去重、配置管理、安全策略、媒体处理、命令解析等功能,完善Matrix适配器基础能力
2026-05-12 00:45:54 +08:00

26 lines
660 B
Python

from __future__ import annotations
from collections import OrderedDict
class EventDeduplicator:
def __init__(self, max_size: int = 10000):
self._seen: OrderedDict[str, None] = OrderedDict()
self._max_size = max_size
def is_duplicate(self, event_id: str) -> bool:
if event_id in self._seen:
self._seen.move_to_end(event_id)
return True
self._seen[event_id] = None
if len(self._seen) > self._max_size:
self._seen.popitem(last=False)
return False
def clear(self) -> None:
self._seen.clear()
def __len__(self) -> int:
return len(self._seen)