From 12d2ee52dc4c6c9cd54bd85654e999f4746bef71 Mon Sep 17 00:00:00 2001 From: ingvar1995 Date: Thu, 28 Apr 2016 22:08:47 +0300 Subject: [PATCH] avatar cancelling fixed --- src/file_transfers.py | 13 ++++++++----- src/tox.py | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/file_transfers.py b/src/file_transfers.py index da6c73f..8f07d83 100644 --- a/src/file_transfers.py +++ b/src/file_transfers.py @@ -1,6 +1,6 @@ from toxcore_enums_and_consts import TOX_FILE_KIND, TOX_FILE_CONTROL from os.path import basename, getsize, exists -from os import remove +from os import remove, chdir from time import time, sleep from tox import Tox import settings @@ -149,8 +149,8 @@ class ReceiveTransfer(FileTransfer): def __init__(self, path, tox, friend_number, size, file_number): super(ReceiveTransfer, self).__init__(path, tox, friend_number, size, file_number) - self._file = open(self._path, 'wb') if type(self) is not ReceiveAvatar: + self._file = open(self._path, 'wb') self._file.truncate(0) self._file_size = 0 @@ -219,7 +219,7 @@ class ReceiveAvatar(ReceiveTransfer): MAX_AVATAR_SIZE = 512 * 1024 def __init__(self, tox, friend_number, size, file_number): - path = settings.ProfileHelper.get_path() + '/avatars/{}.png'.format(tox.friend_get_public_key(friend_number)) + path = settings.ProfileHelper.get_path() + 'avatars/{}.png'.format(tox.friend_get_public_key(friend_number)) super(ReceiveAvatar, self).__init__(path, tox, friend_number, size, file_number) if size > self.MAX_AVATAR_SIZE: self.send_control(TOX_FILE_CONTROL['CANCEL']) @@ -231,14 +231,17 @@ class ReceiveAvatar(ReceiveTransfer): remove(path) else: hash = self.get_file_id() - with open(path, 'rb') as fl: - existing_hash = Tox.hash(fl.read()) + with open(path) as fl: + data = fl.read() + existing_hash = Tox.hash(data) if hash == existing_hash: self.send_control(TOX_FILE_CONTROL['CANCEL']) self.state = TOX_FILE_TRANSFER_STATE['CANCELED'] else: + self._file = open(self._path, 'wb') self._file.truncate(0) self.send_control(TOX_FILE_CONTROL['RESUME']) else: + self._file = open(self._path, 'wb') self._file.truncate(0) self.send_control(TOX_FILE_CONTROL['RESUME']) diff --git a/src/tox.py b/src/tox.py index 1c2f22b..c5fba4c 100644 --- a/src/tox.py +++ b/src/tox.py @@ -1017,7 +1017,7 @@ class Tox(object): # ----------------------------------------------------------------------------------------------------------------- @staticmethod - def hash(data, size, hash=None): + def hash(data, hash=None): """ Generates a cryptographic hash of the given data. @@ -1034,7 +1034,7 @@ class Tox(object): """ if hash is None: hash = create_string_buffer(TOX_HASH_LENGTH) - Tox.libtoxcore.tox_hash(hash, c_void_p(data), c_size_t(size)) + Tox.libtoxcore.tox_hash(hash, c_char_p(data), len(data)) return bin_to_string(hash, TOX_HASH_LENGTH) def file_control(self, friend_number, file_number, control):