added some xep-0004 compatibility changes

This commit is contained in:
Nathan Fritz 2010-08-19 19:53:56 -07:00
parent d150b35464
commit eb9e72fe3e
2 changed files with 17 additions and 1 deletions

View file

@ -23,6 +23,15 @@ class Form(ElementBase):
sub_interfaces = set(('title',)) sub_interfaces = set(('title',))
form_types = set(('cancel', 'form', 'result', 'submit')) form_types = set(('cancel', 'form', 'result', 'submit'))
def __init__(self, *args, **kwargs):
title = None
if 'title' in kwargs:
title = kwargs['title']
del kwargs['title']
ElementBase.__init__(self, *args, **kwargs)
if title is not None:
self['title'] = title
def setup(self, xml=None): def setup(self, xml=None):
if ElementBase.setup(self, xml): #if we had to generate xml if ElementBase.setup(self, xml): #if we had to generate xml
self['type'] = 'form' self['type'] = 'form'
@ -339,6 +348,13 @@ class xep_0004(base.base_plugin):
registerStanzaPlugin(Form, FormField) registerStanzaPlugin(Form, FormField)
registerStanzaPlugin(Message, Form) registerStanzaPlugin(Message, Form)
def makeForm(self, ftype='form', title='', instructions=''):
f = Form()
f['type'] = ftype
f['title'] = title
f['instructions'] = instructions
return f
def post_init(self): def post_init(self):
base.base_plugin.post_init(self) base.base_plugin.post_init(self)
self.xmpp.plugin['xep_0030'].add_feature('jabber:x:data') self.xmpp.plugin['xep_0030'].add_feature('jabber:x:data')