diff options
Diffstat (limited to 'slixmpp/plugins/xep_0363/http_upload.py')
-rw-r--r-- | slixmpp/plugins/xep_0363/http_upload.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/slixmpp/plugins/xep_0363/http_upload.py b/slixmpp/plugins/xep_0363/http_upload.py index 266fc656..04b066cd 100644 --- a/slixmpp/plugins/xep_0363/http_upload.py +++ b/slixmpp/plugins/xep_0363/http_upload.py @@ -28,7 +28,9 @@ class UploadServiceNotFound(FileUploadError): pass class FileTooBig(FileUploadError): - pass + def __str__(self): + return 'File size too large: {} (max: {} bytes)' \ + .format(self.args[0], self.args[1]) class HTTPError(FileUploadError): def __str__(self): @@ -116,7 +118,7 @@ class XEP_0363(BasePlugin): except (TypeError, ValueError): log.error('Invalid max size received from HTTP File Upload service') self.max_file_size = float('+inf') - break + break if input_file is None: input_file = open(filename, 'rb') @@ -126,7 +128,7 @@ class XEP_0363(BasePlugin): input_file.seek(0) if size > self.max_file_size: - raise FileTooBig() + raise FileTooBig(size, self.max_file_size) if content_type is None: content_type = guess_type(filename)[0] @@ -136,6 +138,7 @@ class XEP_0363(BasePlugin): basename = os.path.basename(filename) slot_iq = await self.request_slot(self.upload_service, basename, size, content_type, ifrom, timeout, + callback=callback, timeout_callback=timeout_callback) slot = slot_iq['http_upload_slot'] |