Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
7e700683 by Philipp Hörist at 2019-11-21T21:00:26Z
Add In-Band Registration (XEP-0077) support
- - - - -
2 changed files:
- nbxmpp/dispatcher.py
- + nbxmpp/modules/register.py
Changes:
=====================================
nbxmpp/dispatcher.py
=====================================
@@ -78,6 +78,7 @@ from nbxmpp.modules.correction import Correction
from nbxmpp.modules.attention import Attention
from nbxmpp.modules.security_labels import SecurityLabels
from nbxmpp.modules.chatstates import Chatstates
+from nbxmpp.modules.register import Register
from nbxmpp.modules.misc import unwrap_carbon
from nbxmpp.modules.misc import unwrap_mam
from nbxmpp.util import get_properties_struct
@@ -223,6 +224,7 @@ class XMPPDispatcher(PlugIn):
self._modules['Attention'] = Attention(self._owner)
self._modules['SecurityLabels'] = SecurityLabels(self._owner)
self._modules['Chatstates'] = Chatstates(self._owner)
+ self._modules['Register'] = Register(self._owner)
for instance in self._modules.values():
for handler in instance.handlers:
=====================================
nbxmpp/modules/register.py
=====================================
@@ -0,0 +1,49 @@
+# Copyright (C) 2018 Philipp Hörist <philipp AT hoerist.com>
+#
+# This file is part of nbxmpp.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; If not, see <http://www.gnu.org/licenses/>.
+
+import logging
+
+from nbxmpp.protocol import NS_REGISTER
+from nbxmpp.protocol import Iq
+from nbxmpp.protocol import isResultNode
+from nbxmpp.structs import CommonResult
+from nbxmpp.util import call_on_response
+from nbxmpp.util import callback
+from nbxmpp.util import raise_error
+
+log = logging.getLogger('nbxmpp.m.register')
+
+
+class Register:
+ def __init__(self, client):
+ self._client = client
+ self.handlers = []
+
+ @call_on_response('_default_response')
+ def unregister(self):
+ hostname = self._client.get_bound_jid().getDomain()
+ iq = Iq('set', to=hostname)
+ query = iq.setQuery()
+ query.setNamespace(NS_REGISTER)
+ query.addChild('remove')
+ return iq
+
+ @callback
+ def _default_response(self, stanza):
+ if not isResultNode(stanza):
+ return raise_error(log.info, stanza)
+ return CommonResult(jid=stanza.getFrom())
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/7e700683e9f08a5095a2075d95…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/7e700683e9f08a5095a2075d95…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
887f1112 by Daniel Brötzmann at 2019-11-20T09:21:27Z
Roster: Don't build resources submenu for start_chat_menuitem
This avoids being able to open multiple ChatControls for one contact.
Historically, this was used to send a message to a specific resource.
- - - - -
1 changed file:
- gajim/gui_menu_builder.py
Changes:
=====================================
gajim/gui_menu_builder.py
=====================================
@@ -206,8 +206,6 @@ control=None, gc_contact=None, is_anonymous=True):
contacts = app.contacts.get_contacts(account, jid)
if len(contacts) > 1 and use_multiple_contacts: # several resources
- start_chat_menuitem.set_submenu(build_resources_submenu(contacts,
- account, app.interface.on_open_chat_window))
send_file_menuitem.set_submenu(build_resources_submenu(
contacts,
account,
@@ -216,8 +214,6 @@ control=None, gc_contact=None, is_anonymous=True):
execute_command_menuitem.set_submenu(build_resources_submenu(
contacts, account, roster.on_execute_command, cap=NS_COMMANDS))
else:
- start_chat_menuitem.connect('activate',
- app.interface.on_open_chat_window, contact, account)
if contact.supports(NS_JINGLE_FILE_TRANSFER_5):
send_file_menuitem.set_sensitive(True)
send_file_menuitem.connect('activate',
@@ -238,6 +234,9 @@ control=None, gc_contact=None, is_anonymous=True):
else:
execute_command_menuitem.set_sensitive(False)
+ start_chat_menuitem.connect(
+ 'activate', app.interface.on_open_chat_window, contact, account)
+
rename_menuitem.connect('activate', roster.on_rename, 'contact', jid,
account)
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/887f1112c8b1dcdaf0172fe7a31168d809…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/887f1112c8b1dcdaf0172fe7a31168d809…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
425f50f8 by Daniel Brötzmann at 2019-11-19T20:12:48Z
Always use bare JID when sending message to group
- - - - -
1 changed file:
- gajim/gtk/single_message.py
Changes:
=====================================
gajim/gtk/single_message.py
=====================================
@@ -74,7 +74,7 @@ class SingleMessageWindow(Gtk.ApplicationWindow):
self.message_tv_buffer.connect('changed', self.update_char_counter)
if isinstance(to, list):
- jid = ', '.join([i[0].get_full_jid() for i in to])
+ jid = ', '.join([i[0].jid for i in to])
self._ui.to_entry.set_text(jid)
else:
self._ui.to_entry.set_text(to)
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/425f50f827cb0cbef1676371e028badb5f…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/425f50f827cb0cbef1676371e028badb5f…
You're receiving this email because of your account on dev.gajim.org.