Fix error handling to operate on error number

Fix the handling of MPD errors to compare the error number instead of
the complete, unparsed error message.
This commit is contained in:
coderkun 2021-04-18 17:09:35 +02:00
parent f843cc629d
commit 04effa0ec1

View file

@ -19,6 +19,7 @@ from mcg.utils import Utils
class MPDException(Exception): class MPDException(Exception):
def __init__(self, error): def __init__(self, error):
super(MPDException, self).__init__(self._parse_error(error)) super(MPDException, self).__init__(self._parse_error(error))
self._error = error
def _parse_error(self, error): def _parse_error(self, error):
@ -36,6 +37,10 @@ class MPDException(Exception):
return self._error return self._error
def get_error_number(self):
return self._error_number
def get_command_number(self): def get_command_number(self):
return self._command_number return self._command_number
@ -690,7 +695,7 @@ class Client(Base):
break break
except CommandException as e: except CommandException as e:
# If no albumart can be found, do not throw an exception # If no albumart can be found, do not throw an exception
if e.get_error() == Client.PROTOCOL_ERROR_NOEXISTS: if e.get_error_number() == Client.PROTOCOL_ERROR_NOEXISTS:
data = None data = None
else: else:
raise e raise e
@ -773,7 +778,7 @@ class Client(Base):
self._write(command, args) self._write(command, args)
return self._read() return self._read()
except MPDException as e: except MPDException as e:
if command == 'idle' and e.get_error() == Client.PROTOCOL_ERROR_PERMISSION: if command == 'idle' and e.get_error_number() == Client.PROTOCOL_ERROR_PERMISSION:
self.disconnect() self.disconnect()
self._callback(Client.SIGNAL_ERROR, e) self._callback(Client.SIGNAL_ERROR, e)
@ -782,7 +787,7 @@ class Client(Base):
try: try:
self._write(command, args) self._write(command, args)
except MPDException as e: except MPDException as e:
if command == 'idle' and e.get_error() == Client.PROTOCOL_ERROR_PERMISSION: if command == 'idle' and e.get_error_number() == Client.PROTOCOL_ERROR_PERMISSION:
self.disconnect() self.disconnect()
self._callback(Client.SIGNAL_ERROR, e) self._callback(Client.SIGNAL_ERROR, e)