[httpupload] Use 'max-file-size' value for error message
If a file is too large, use the 'max-file-size' value to generate an error message rather than using the error message provided by the XMPP server. This enables easy i18n of the error message and a human-readable file size.
This commit is contained in:
@@ -248,12 +248,24 @@ class Base(object):
|
|||||||
IQ_CALLBACK[id_] = lambda stanza: self.received_slot(stanza, file)
|
IQ_CALLBACK[id_] = lambda stanza: self.received_slot(stanza, file)
|
||||||
app.connections[self.account].connection.send(iq)
|
app.connections[self.account].connection.send(iq)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_slot_error_message(stanza):
|
||||||
|
tmp = stanza.getTag('error').getTag('file-too-large')
|
||||||
|
|
||||||
|
if tmp is not None:
|
||||||
|
max_file_size = int(tmp.getTag('max-file-size').getData())
|
||||||
|
return _('File is too large, maximum allowed file size is: %s') % \
|
||||||
|
GLib.format_size_full(max_file_size,
|
||||||
|
GLib.FormatSizeFlags.IEC_UNITS)
|
||||||
|
|
||||||
|
return stanza.getErrorMsg()
|
||||||
|
|
||||||
def received_slot(self, stanza, file):
|
def received_slot(self, stanza, file):
|
||||||
log.info("Received slot")
|
log.info("Received slot")
|
||||||
if stanza.getType() == 'error':
|
if stanza.getType() == 'error':
|
||||||
file.progress.close_dialog()
|
file.progress.close_dialog()
|
||||||
ErrorDialog(_('Could not request upload slot'),
|
ErrorDialog(_('Could not request upload slot'),
|
||||||
stanza.getErrorMsg(),
|
self.get_slot_error_message(stanza),
|
||||||
transient_for=file.control.parent_win.window)
|
transient_for=file.control.parent_win.window)
|
||||||
log.error(stanza)
|
log.error(stanza)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user