| | |
| |
|
| | from enum import Enum |
| |
|
| |
|
| | class ContextType(Enum): |
| | TEXT = 1 |
| | VOICE = 2 |
| | IMAGE = 3 |
| | IMAGE_CREATE = 10 |
| | JOIN_GROUP = 20 |
| | PATPAT = 21 |
| |
|
| | 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) |
| |
|