inline images #1

This commit is contained in:
ingvar1995 2016-04-12 16:11:10 +03:00
parent ba3261b76b
commit df02fd9c4d
4 changed files with 112 additions and 14 deletions

View file

@ -143,7 +143,7 @@ class ReceiveTransfer(FileTransfer):
if data is None:
self._file.close()
self.state = TOX_FILE_TRANSFER_STATE['FINISHED']
self._state_changed.signal.emit(self.state, self._done / self._size if self._size else 0)
self._state_changed.signal.emit(self.state, 1)
else:
data = ''.join(chr(x) for x in data)
if self._file_size < position:
@ -159,6 +159,32 @@ class ReceiveTransfer(FileTransfer):
self._state_changed.signal.emit(self.state, self._done / self._size)
class ReceiveToBuffer(FileTransfer):
def __init__(self, tox, friend_number, size, file_number):
super(ReceiveToBuffer, self).__init__(None, tox, friend_number, size, file_number)
self._data = ''
self._data_size = 0
def get_data(self):
return self._data
def write_chunk(self, position, data):
if data is None:
self.state = TOX_FILE_TRANSFER_STATE['FINISHED']
self._state_changed.signal.emit(self.state, 1)
else:
data = ''.join(chr(x) for x in data)
l = len(data)
if self._data_size < position:
self._data += ('\0' * (position - self._data_size))
self._data = self._data[:position] + data + self._data[position + l:]
if position + l > self._data_size:
self._data_size = position + l
self._done += l
self._state_changed.signal.emit(self.state, self._done / self._size)
class ReceiveAvatar(ReceiveTransfer):
MAX_AVATAR_SIZE = 512 * 1024