mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-01-31 06:19:50 +08:00
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
#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'请求成功',
|
|
},
|
|
}
|