|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # encoding:utf-8
-
- from enum import Enum
-
- class ContextType (Enum):
- TEXT = 1 # 文本消息
- VOICE = 2 # 音频消息
- IMAGE = 3 # 图片消息
- IMAGE_CREATE = 10 # 创建图片命令
-
- def __str__(self):
- return self.name
- class Context:
- def __init__(self, type : ContextType = None , content = None, kwargs = dict()):
- self.type = type
- self.content = content
- self.kwargs = kwargs
-
- def __contains__(self, key):
- if key == 'type':
- return self.type is not None
- elif key == 'content':
- return self.content is not None
- else:
- return key in self.kwargs
-
- def __getitem__(self, key):
- if key == 'type':
- return self.type
- elif key == 'content':
- return self.content
- else:
- return self.kwargs[key]
-
- def get(self, key, default=None):
- try:
- return self[key]
- except KeyError:
- return default
-
- def __setitem__(self, key, value):
- if key == 'type':
- self.type = value
- elif key == 'content':
- self.content = value
- else:
- self.kwargs[key] = value
-
- def __delitem__(self, key):
- if key == 'type':
- self.type = None
- elif key == 'content':
- self.content = None
- else:
- del self.kwargs[key]
-
- def __str__(self):
- return "Context(type={}, content={}, kwargs={})".format(self.type, self.content, self.kwargs)
|