Move XEP-0004 to new system.

This commit is contained in:
Lance Stout 2012-03-11 20:56:46 -07:00
parent a104cd6dae
commit be363e0b46
2 changed files with 23 additions and 20 deletions

View File

@ -6,6 +6,17 @@
See the file LICENSE for copying permission. See the file LICENSE for copying permission.
""" """
from sleekxmpp.plugins.base import register_plugin
from sleekxmpp.plugins.xep_0004.stanza import Form from sleekxmpp.plugins.xep_0004.stanza import Form
from sleekxmpp.plugins.xep_0004.stanza import FormField, FieldOption from sleekxmpp.plugins.xep_0004.stanza import FormField, FieldOption
from sleekxmpp.plugins.xep_0004.dataforms import xep_0004 from sleekxmpp.plugins.xep_0004.dataforms import XEP_0004
register_plugin(XEP_0004)
# Retain some backwards compatibility
xep_0004 = XEP_0004
xep_0004.makeForm = xep_0004.make_form
xep_0004.buildForm = xep_0004.build_form

View File

@ -6,29 +6,27 @@
See the file LICENSE for copying permission. See the file LICENSE for copying permission.
""" """
import copy
from sleekxmpp.thirdparty import OrderedDict
from sleekxmpp import Message from sleekxmpp import Message
from sleekxmpp.xmlstream import register_stanza_plugin, ElementBase, ET from sleekxmpp.xmlstream import register_stanza_plugin
from sleekxmpp.xmlstream.handler import Callback from sleekxmpp.xmlstream.handler import Callback
from sleekxmpp.xmlstream.matcher import StanzaPath from sleekxmpp.xmlstream.matcher import StanzaPath
from sleekxmpp.plugins.base import base_plugin from sleekxmpp.plugins import BasePlugin
from sleekxmpp.plugins.xep_0004 import stanza from sleekxmpp.plugins.xep_0004 import stanza
from sleekxmpp.plugins.xep_0004.stanza import Form, FormField, FieldOption from sleekxmpp.plugins.xep_0004.stanza import Form, FormField, FieldOption
class xep_0004(base_plugin): class XEP_0004(BasePlugin):
""" """
XEP-0004: Data Forms XEP-0004: Data Forms
""" """
def plugin_init(self): name = 'xep_0004'
self.xep = '0004' description = 'XEP-0004: Data Forms'
self.description = 'Data Forms' dependencies = set(['xep_0030'])
self.stanza = stanza stanza = stanza
def plugin_init(self):
self.xmpp.registerHandler( self.xmpp.registerHandler(
Callback('Data Form', Callback('Data Form',
StanzaPath('message/form'), StanzaPath('message/form'),
@ -38,6 +36,8 @@ class xep_0004(base_plugin):
register_stanza_plugin(Form, FormField, iterable=True) register_stanza_plugin(Form, FormField, iterable=True)
register_stanza_plugin(Message, Form) register_stanza_plugin(Message, Form)
self.xmpp['xep_0030'].add_feature('jabber:x:data')
def make_form(self, ftype='form', title='', instructions=''): def make_form(self, ftype='form', title='', instructions=''):
f = Form() f = Form()
f['type'] = ftype f['type'] = ftype
@ -45,16 +45,8 @@ class xep_0004(base_plugin):
f['instructions'] = instructions f['instructions'] = instructions
return f return f
def post_init(self):
base_plugin.post_init(self)
self.xmpp.plugin['xep_0030'].add_feature('jabber:x:data')
def handle_form(self, message): def handle_form(self, message):
self.xmpp.event("message_xform", message) self.xmpp.event("message_xform", message)
def build_form(self, xml): def build_form(self, xml):
return Form(xml=xml) return Form(xml=xml)
xep_0004.makeForm = xep_0004.make_form
xep_0004.buildForm = xep_0004.build_form