[httpupload] Add oob tag with url data
This will only be added on not encrypted Messages
This commit is contained in:
@@ -58,17 +58,20 @@ class HttpuploadPlugin(GajimPlugin):
|
|||||||
if not ENCRYPTION_AVAILABLE:
|
if not ENCRYPTION_AVAILABLE:
|
||||||
self.available_text = DEP_MSG
|
self.available_text = DEP_MSG
|
||||||
self.config_dialog = None
|
self.config_dialog = None
|
||||||
self.events_handlers = {}
|
self.events_handlers = {
|
||||||
self.events_handlers['agent-info-received'] = (
|
'agent-info-received': (
|
||||||
ged.PRECORE, self.handle_agent_info_received)
|
ged.PRECORE, self.handle_agent_info_received),
|
||||||
self.events_handlers['raw-iq-received'] = (
|
'stanza-message-outgoing': (
|
||||||
ged.PRECORE, self.handle_iq_received)
|
ged.PRECORE, self.handle_outgoing_stanza),
|
||||||
|
'raw-iq-received': (
|
||||||
|
ged.PRECORE, self.handle_iq_received)}
|
||||||
self.gui_extension_points = {
|
self.gui_extension_points = {
|
||||||
'chat_control_base': (self.connect_with_chat_control,
|
'chat_control_base': (self.connect_with_chat_control,
|
||||||
self.disconnect_from_chat_control),
|
self.disconnect_from_chat_control),
|
||||||
'chat_control_base_update_toolbar': (self.update_chat_control,
|
'chat_control_base_update_toolbar': (self.update_chat_control,
|
||||||
None)}
|
None)}
|
||||||
self.gui_interfaces = {}
|
self.gui_interfaces = {}
|
||||||
|
self.messages = []
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def handle_iq_received(event):
|
def handle_iq_received(event):
|
||||||
@@ -90,6 +93,13 @@ class HttpuploadPlugin(GajimPlugin):
|
|||||||
interface.component = event.jid
|
interface.component = event.jid
|
||||||
interface.update_button_states(True)
|
interface.update_button_states(True)
|
||||||
|
|
||||||
|
def handle_outgoing_stanza(self, event):
|
||||||
|
message = event.msg_iq.getTagData('body')
|
||||||
|
if message and message in self.messages:
|
||||||
|
self.messages.remove(message)
|
||||||
|
oob = event.msg_iq.addChild('x', namespace=nbxmpp.NS_X_OOB)
|
||||||
|
oob.addChild('url').setData(message)
|
||||||
|
|
||||||
def connect_with_chat_control(self, chat_control):
|
def connect_with_chat_control(self, chat_control):
|
||||||
account = chat_control.contact.account.name
|
account = chat_control.contact.account.name
|
||||||
self.get_interface(account).add_button(chat_control)
|
self.get_interface(account).add_button(chat_control)
|
||||||
@@ -319,14 +329,15 @@ class Base(object):
|
|||||||
GLib.idle_add(file.progress.close_dialog)
|
GLib.idle_add(file.progress.close_dialog)
|
||||||
GLib.idle_add(self.on_upload_error, file, error_msg)
|
GLib.idle_add(self.on_upload_error, file, error_msg)
|
||||||
|
|
||||||
@staticmethod
|
def upload_complete(self, response_code, file):
|
||||||
def upload_complete(response_code, file):
|
|
||||||
file.progress.close_dialog()
|
file.progress.close_dialog()
|
||||||
if 200 <= response_code < 300:
|
if 200 <= response_code < 300:
|
||||||
log.info("Upload completed successfully")
|
log.info("Upload completed successfully")
|
||||||
message = file.get
|
message = file.get
|
||||||
if file.encrypted:
|
if file.encrypted:
|
||||||
message += '#' + hexlify(file.iv + file.key).decode('utf-8')
|
message += '#' + hexlify(file.iv + file.key).decode('utf-8')
|
||||||
|
else:
|
||||||
|
self.plugin.messages.append(message)
|
||||||
file.control.send_message(message=message)
|
file.control.send_message(message=message)
|
||||||
file.control.msg_textview.grab_focus()
|
file.control.msg_textview.grab_focus()
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user