def handle_errors(self, code, reason, url, method, headers, body): response = None try: response = json.loads(body) except Exception as e: # syntax error, resort to default error handler return # {"error":"Permission denied."} if 'error' in response: message = response['error'] feedback = self.id + ' ' + self.json(response) exceptions = self.exceptions if message in exceptions: raise exceptions[message](feedback) elif message.find('Total must be at least') >= 0: raise InvalidOrder(feedback) elif message.find('This account is frozen.') >= 0: raise AccountSuspended(feedback) elif message.find('Not enough') >= 0: raise InsufficientFunds(feedback) elif message.find('Nonce must be greater') >= 0: raise InvalidNonce(feedback) elif message.find('You have already called cancelOrder or moveOrder on self order.') >= 0: raise CancelPending(feedback) else: raise ExchangeError(self.id + ' unknown error ' + self.json(response))
def handle_errors(self, code, reason, url, method, headers, body): response = None try: response = json.loads(body) except Exception as e: # syntax error, resort to default error handler return if 'error' in response: error = response['error'] feedback = self.id + ' ' + self.json(response) if error == 'Invalid order number, or you are not the person who placed the order.': raise OrderNotFound(feedback) elif error == 'Connection timed out. Please try again.': raise RequestTimeout(feedback) elif error == 'Internal error. Please try again.': raise ExchangeNotAvailable(feedback) elif error == 'Order not found, or you are not the person who placed it.': raise OrderNotFound(feedback) elif error == 'Invalid API key/secret pair.': raise AuthenticationError(feedback) elif error == 'Please do not make more than 8 API calls per second.': raise DDoSProtection(feedback) elif error.find('Total must be at least') >= 0: raise InvalidOrder(feedback) elif error.find('This account is frozen.') >= 0: raise AccountSuspended(feedback) elif error.find('Not enough') >= 0: raise InsufficientFunds(feedback) elif error.find('Nonce must be greater') >= 0: raise InvalidNonce(feedback) elif error.find('You have already called cancelOrder or moveOrder on self order.') >= 0: raise CancelPending(feedback) else: raise ExchangeError(self.id + ': unknown error: ' + self.json(response))