MCPcopy Create free account
hub / github.com/wechaty/python-wechaty / SingleIdContainer

Class SingleIdContainer

src/wechaty/utils/async_helper.py:35–63  ·  view source on GitHub ↗

Store the Message Id Container

Source from the content-addressed store, hash-verified

33
34
35class SingleIdContainer:
36 """Store the Message Id Container"""
37 _instance: Optional[SingleIdContainer] = None
38
39 def __init__(self) -> None:
40 self.ids: Set[str] = set()
41 self.max_size: int = 100000
42
43 def exist(self, message_id: str) -> bool:
44 """exist if the message has been emitted
45
46 Args:
47 message_id (str): the identifier of message
48
49 Returns:
50 bool: if the message is the first message
51 """
52 if message_id in self.ids:
53 return True
54 self.ids.add(message_id)
55 return False
56
57 @classmethod
58 def instance(cls) -> SingleIdContainer:
59 """singleton pattern for MessageIdContainer"""
60 if cls._instance is None or len(cls._instance.ids) > cls._instance.max_size:
61 cls._instance = SingleIdContainer()
62
63 return cls._instance
64
65
66def single_message(on_message_func): # type: ignore

Callers 1

instanceMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected