| |
| TRANSLATE = 'Chinese' |
|
|
| class ReturnValue(dict): |
| ''' turn return value of itchat into a boolean value |
| for requests: |
| ..code::python |
| |
| import requests |
| r = requests.get('http://httpbin.org/get') |
| print(ReturnValue(rawResponse=r) |
| |
| for normal dict: |
| ..code::python |
| |
| returnDict = { |
| 'BaseResponse': { |
| 'Ret': 0, |
| 'ErrMsg': 'My error msg', }, } |
| print(ReturnValue(returnDict)) |
| ''' |
| def __init__(self, returnValueDict={}, rawResponse=None): |
| if rawResponse: |
| try: |
| returnValueDict = rawResponse.json() |
| except ValueError: |
| returnValueDict = { |
| 'BaseResponse': { |
| 'Ret': -1004, |
| 'ErrMsg': 'Unexpected return value', }, |
| 'Data': rawResponse.content, } |
| for k, v in returnValueDict.items(): |
| self[k] = v |
| if not 'BaseResponse' in self: |
| self['BaseResponse'] = { |
| 'ErrMsg': 'no BaseResponse in raw response', |
| 'Ret': -1000, } |
| if TRANSLATE: |
| self['BaseResponse']['RawMsg'] = self['BaseResponse'].get('ErrMsg', '') |
| self['BaseResponse']['ErrMsg'] = \ |
| TRANSLATION[TRANSLATE].get( |
| self['BaseResponse'].get('Ret', '')) \ |
| or self['BaseResponse'].get('ErrMsg', u'No ErrMsg') |
| self['BaseResponse']['RawMsg'] = \ |
| self['BaseResponse']['RawMsg'] or self['BaseResponse']['ErrMsg'] |
| def __nonzero__(self): |
| return self['BaseResponse'].get('Ret') == 0 |
| def __bool__(self): |
| return self.__nonzero__() |
| def __str__(self): |
| return '{%s}' % ', '.join( |
| ['%s: %s' % (repr(k),repr(v)) for k,v in self.items()]) |
| def __repr__(self): |
| return '<ItchatReturnValue: %s>' % self.__str__() |
|
|
| TRANSLATION = { |
| 'Chinese': { |
| -1000: u'返回值不带BaseResponse', |
| -1001: u'无法找到对应的成员', |
| -1002: u'文件位置错误', |
| -1003: u'服务器拒绝连接', |
| -1004: u'服务器返回异常值', |
| -1005: u'参数错误', |
| -1006: u'无效操作', |
| 0: u'请求成功', |
| }, |
| } |
|
|