summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins
diff options
context:
space:
mode:
authorNathan Fritz <fritzy@netflint.net>2009-10-29 02:34:23 +0000
committerNathan Fritz <fritzy@netflint.net>2009-10-29 02:34:23 +0000
commit44aa52663579bcd1a56d2f13cdc91b1ca2c2b542 (patch)
tree9466bb338e3fe20fb259a8cf3187dbf3e68488aa /sleekxmpp/plugins
parent8dbf53594bc9ea0aec1ecd81092d806d001a7b6c (diff)
downloadslixmpp-44aa52663579bcd1a56d2f13cdc91b1ca2c2b542.tar.gz
slixmpp-44aa52663579bcd1a56d2f13cdc91b1ca2c2b542.tar.bz2
slixmpp-44aa52663579bcd1a56d2f13cdc91b1ca2c2b542.tar.xz
slixmpp-44aa52663579bcd1a56d2f13cdc91b1ca2c2b542.zip
* fixed bugs with XEP 50 for components
* configuration-less nodes
Diffstat (limited to 'sleekxmpp/plugins')
-rw-r--r--sleekxmpp/plugins/xep_0004.py7
-rw-r--r--sleekxmpp/plugins/xep_0050.py15
-rw-r--r--sleekxmpp/plugins/xep_0060.py33
3 files changed, 31 insertions, 24 deletions
diff --git a/sleekxmpp/plugins/xep_0004.py b/sleekxmpp/plugins/xep_0004.py
index faee631c..abd5ceef 100644
--- a/sleekxmpp/plugins/xep_0004.py
+++ b/sleekxmpp/plugins/xep_0004.py
@@ -108,6 +108,11 @@ class Form(FieldContainer):
form1.fields[field.var].addOption(option, label)
return form1
+ def copy(self):
+ newform = Form(ftype=self.type)
+ newform.fromXML(self.getXML(self.type))
+ return newform
+
def update(self, form):
values = form.getValues()
for var in values:
@@ -126,7 +131,7 @@ class Form(FieldContainer):
def setValues(self, values={}):
for field in values:
if field in self.field:
- if isintance(values[field], list) or isinstance(values[field], tuple):
+ if isinstance(values[field], list) or isinstance(values[field], tuple):
for value in values[field]:
self.field[field].setValue(value)
else:
diff --git a/sleekxmpp/plugins/xep_0050.py b/sleekxmpp/plugins/xep_0050.py
index 8c7e10d9..b75a675c 100644
--- a/sleekxmpp/plugins/xep_0050.py
+++ b/sleekxmpp/plugins/xep_0050.py
@@ -39,15 +39,16 @@ class xep_0050(base.base_plugin):
self.xmpp.add_handler("<iq type='set' xmlns='%s'><command xmlns='http://jabber.org/protocol/commands' action='complete'/></iq>" % self.xmpp.default_ns, self.handler_command_complete)
self.commands = {}
self.sessions = {}
+ self.sd = self.xmpp.plugin['xep_0030']
def post_init(self):
- self.xmpp['xep_0030'].add_feature('http://jabber.org/protocol/commands')
+ self.sd.add_feature('http://jabber.org/protocol/commands')
def addCommand(self, node, name, form, pointer=None, multi=False):
- self.xmpp['xep_0030'].add_item(None, name, 'http://jabber.org/protocol/commands', node)
- self.xmpp['xep_0030'].add_identity('automation', 'command-node', name, node)
- self.xmpp['xep_0030'].add_feature('http://jabber.org/protocol/commands', node)
- self.xmpp['xep_0030'].add_feature('jabber:x:data', node)
+ self.sd.add_item(None, name, 'http://jabber.org/protocol/commands', node)
+ self.sd.add_identity('automation', 'command-node', name, node)
+ self.sd.add_feature('http://jabber.org/protocol/commands', node)
+ self.sd.add_feature('jabber:x:data', node)
self.commands[node] = (name, form, pointer, multi)
def getNewSession(self):
@@ -80,7 +81,7 @@ class xep_0050(base.base_plugin):
in_command = xml.find('{http://jabber.org/protocol/commands}command')
sessionid = in_command.get('sessionid', None)
pointer = self.sessions[sessionid]['next']
- results = self.xmpp['xep_0004'].makeForm('result')
+ results = self.xmpp.plugin['xep_0004'].makeForm('result')
results.fromXML(in_command.find('{jabber:x:data}x'))
pointer(results,sessionid)
self.xmpp.send(self.makeCommand(xml.attrib['from'], in_command.attrib['node'], form=None, id=xml.attrib['id'], sessionid=sessionid, status='completed', actions=[]))
@@ -91,7 +92,7 @@ class xep_0050(base.base_plugin):
in_command = xml.find('{http://jabber.org/protocol/commands}command')
sessionid = in_command.get('sessionid', None)
pointer = self.sessions[sessionid]['next']
- results = self.xmpp['xep_0004'].makeForm('result')
+ results = self.xmpp.plugin['xep_0004'].makeForm('result')
results.fromXML(in_command.find('{jabber:x:data}x'))
form, npointer, next = pointer(results,sessionid)
self.sessions[sessionid]['next'] = npointer
diff --git a/sleekxmpp/plugins/xep_0060.py b/sleekxmpp/plugins/xep_0060.py
index 68c391f6..734dd3da 100644
--- a/sleekxmpp/plugins/xep_0060.py
+++ b/sleekxmpp/plugins/xep_0060.py
@@ -18,25 +18,26 @@ class xep_0060(base.base_plugin):
create.set('node', node)
pubsub.append(create)
configure = ET.Element('configure')
- if config is None:
- submitform = self.xmpp.plugin['xep_0004'].makeForm('submit')
- else:
+ #if config is None:
+ # submitform = self.xmpp.plugin['xep_0004'].makeForm('submit')
+ #else:
+ if config is not None:
submitform = config
- if 'FORM_TYPE' in submitform.field:
- submitform.field['FORM_TYPE'].setValue('http://jabber.org/protocol/pubsub#node_config')
- else:
- submitform.addField('FORM_TYPE', 'hidden', value='http://jabber.org/protocol/pubsub#node_config')
- if collection:
- if 'pubsub#node_type' in submitform.field:
- submitform.field['pubsub#node_type'].setValue('collection')
+ if 'FORM_TYPE' in submitform.field:
+ submitform.field['FORM_TYPE'].setValue('http://jabber.org/protocol/pubsub#node_config')
else:
- submitform.addField('pubsub#node_type', value='collection')
- else:
- if 'pubsub#node_type' in submitform.field:
- submitform.field['pubsub#node_type'].setValue('leaf')
+ submitform.addField('FORM_TYPE', 'hidden', value='http://jabber.org/protocol/pubsub#node_config')
+ if collection:
+ if 'pubsub#node_type' in submitform.field:
+ submitform.field['pubsub#node_type'].setValue('collection')
+ else:
+ submitform.addField('pubsub#node_type', value='collection')
else:
- submitform.addField('pubsub#node_type', value='leaf')
- configure.append(submitform.getXML('submit'))
+ if 'pubsub#node_type' in submitform.field:
+ submitform.field['pubsub#node_type'].setValue('leaf')
+ else:
+ submitform.addField('pubsub#node_type', value='leaf')
+ configure.append(submitform.getXML('submit'))
pubsub.append(configure)
iq = self.xmpp.makeIqSet(pubsub)
iq.attrib['to'] = jid