Spaces:
Runtime error
Runtime error
#coding=utf8 | |
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'请求成功', | |
}, | |
} | |