"listfiles": self._fetch_database,
"lsinfo": self._fetch_database,
"readcomments": self._fetch_object,
+ "readpicture": self._fetch_composite,
"search": self._fetch_songs,
"searchadd": self._fetch_nothing,
"searchaddpl": self._fetch_nothing,
def _read_binary(self, amount):
chunk = bytearray()
while amount > 0:
- result = self._rbfile.recv(amount)
+ result = self._rbfile.read(amount)
if len(result) == 0:
self.disconnect()
raise ConnectionError("Connection lost while reading binary content")
obj[key] = value
if key == 'binary':
break
+ if not obj:
+ # If the song file was recognized, but there is no picture, the
+ # response is successful, but is otherwise empty.
+ return obj
amount = int(obj['binary'])
try:
obj['data'] = self._read_binary(amount)