diff --git a/gajim/common/modules/pubsub.py b/gajim/common/modules/pubsub.py index c8c60e7561fa2b4b92921747412f7b862e2fd1cf..d9352832d295b0b0357a3ed7204ef1693b417872 100644 --- a/gajim/common/modules/pubsub.py +++ b/gajim/common/modules/pubsub.py @@ -30,6 +30,12 @@ class PubSub(BaseModule): + + _nbxmpp_extends = 'PubSub' + _nbxmpp_methods = [ + 'publish', + ] + def __init__(self, con): BaseModule.__init__(self, con) @@ -71,86 +77,6 @@ def send_pb_unsubscribe(self, jid, node, cb, **kwargs): self._con.connection.SendAndCallForResponse(query, cb, kwargs) - def send_pb_publish(self, jid, node, item, - id_=None, options=None, cb=None, **kwargs): - if not app.account_is_available(self._account): - return - - if cb is None: - cb = self._default_callback - - query = nbxmpp.Iq('set', to=jid) - pubsub = query.addChild('pubsub', namespace=Namespace.PUBSUB) - publish = pubsub.addChild('publish', {'node': node}) - attrs = {} - if id_: - attrs = {'id': id_} - publish.addChild('item', attrs, [item]) - if options: - publish = pubsub.addChild('publish-options') - publish.addChild(node=options) - - self._con.connection.SendAndCallForResponse(query, cb, kwargs) - - @staticmethod - def get_pb_retrieve_iq(jid, node, item_id=None): - """ - Get IQ to query items from a node - """ - query = nbxmpp.Iq('get', to=jid) - pubsub = query.addChild('pubsub', namespace=Namespace.PUBSUB) - items = pubsub.addChild('items', {'node': node}) - if item_id is not None: - items.addChild('item', {'id': item_id}) - return query - - def send_pb_retrieve(self, jid, node, item_id=None, cb=None, **kwargs): - """ - Get items from a node - """ - if not app.account_is_available(self._account): - return - - if cb is None: - cb = self._default_callback - - query = self.get_pb_retrieve_iq(jid, node, item_id) - - self._con.connection.SendAndCallForResponse(query, cb, kwargs) - - def send_pb_retract(self, jid, node, id_, cb=None, **kwargs): - """ - Delete item from a node - """ - if not app.account_is_available(self._account): - return - - if cb is None: - cb = self._default_callback - - query = nbxmpp.Iq('set', to=jid) - pubsub = query.addChild('pubsub', namespace=Namespace.PUBSUB) - retract = pubsub.addChild('retract', {'node': node, 'notify': '1'}) - retract.addChild('item', {'id': id_}) - - self._con.connection.SendAndCallForResponse(query, cb, kwargs) - - def send_pb_purge(self, jid, node, cb=None, **kwargs): - """ - Purge node: Remove all items - """ - if not app.account_is_available(self._account): - return - - if cb is None: - cb = self._default_callback - - query = nbxmpp.Iq('set', to=jid) - pubsub = query.addChild('pubsub', namespace=Namespace.PUBSUB_OWNER) - pubsub.addChild('purge', {'node': node}) - - self._con.connection.SendAndCallForResponse(query, cb, kwargs) - def send_pb_delete(self, jid, node, on_ok=None, on_fail=None): """ Delete node @@ -171,23 +97,6 @@ def response(_nbxmpp_client, resp, jid, node): self._con.connection.SendAndCallForResponse( query, response, {'jid': jid, 'node': node}) - def send_pb_create(self, jid, node, cb, - configure=False, configure_form=None): - """ - Create a new node - """ - if not app.account_is_available(self._account): - return - query = nbxmpp.Iq('set', to=jid) - pubsub = query.addChild('pubsub', namespace=Namespace.PUBSUB) - create = pubsub.addChild('create', {'node': node}) - if configure: - conf = create.addChild('configure') - if configure_form is not None: - conf.addChild(node=configure_form) - - self._con.connection.SendAndCallForResponse(query, cb) - def send_pb_configure(self, jid, node, form, cb=None, **kwargs): if not app.account_is_available(self._account): return diff --git a/gajim/gtk/discovery.py b/gajim/gtk/discovery.py index c4c409ae4e8a05db791f8fc740ff760c088e4b61..e348f35bc24796ffbdb8434f0f3aa1d6e960446d 100644 --- a/gajim/gtk/discovery.py +++ b/gajim/gtk/discovery.py @@ -2190,8 +2190,9 @@ def _on_send_button_clicked(self, w): # Publish it to node con = app.connections[self.account] - con.get_module('PubSub').send_pb_publish( - self.servicejid, self.groupid, item, str(uuid.uuid4())) + con.get_module('PubSub').publish(self.groupid, + item, + jid=self.servicejid) # Close the window self.window.destroy()