|
|
|
|
|
from enum import Enum |
|
|
|
|
|
class ContextType(Enum): |
|
TEXT = 1 |
|
VOICE = 2 |
|
IMAGE = 3 |
|
FILE = 4 |
|
VIDEO = 5 |
|
SHARING = 6 |
|
|
|
IMAGE_CREATE = 10 |
|
ACCEPT_FRIEND = 19 |
|
JOIN_GROUP = 20 |
|
PATPAT = 21 |
|
FUNCTION = 22 |
|
EXIT_GROUP = 23 |
|
|
|
|
|
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) |
|
|