Add support for XEP-0221: Data Forms Media Element

This commit is contained in:
Lance Stout 2012-06-20 23:38:30 -07:00
parent f49818be06
commit bf0a157c5d
5 changed files with 87 additions and 0 deletions

View File

@ -89,6 +89,7 @@ packages = [ 'sleekxmpp',
'sleekxmpp/plugins/xep_0199', 'sleekxmpp/plugins/xep_0199',
'sleekxmpp/plugins/xep_0202', 'sleekxmpp/plugins/xep_0202',
'sleekxmpp/plugins/xep_0203', 'sleekxmpp/plugins/xep_0203',
'sleekxmpp/plugins/xep_0221',
'sleekxmpp/plugins/xep_0224', 'sleekxmpp/plugins/xep_0224',
'sleekxmpp/plugins/xep_0231', 'sleekxmpp/plugins/xep_0231',
'sleekxmpp/plugins/xep_0249', 'sleekxmpp/plugins/xep_0249',

View File

@ -50,6 +50,7 @@ __all__ = [
'xep_0199', # Ping 'xep_0199', # Ping
'xep_0202', # Entity Time 'xep_0202', # Entity Time
'xep_0203', # Delayed Delivery 'xep_0203', # Delayed Delivery
'xep_0221', # Data Forms Media Element
'xep_0222', # Persistent Storage of Public Data via Pubsub 'xep_0222', # Persistent Storage of Public Data via Pubsub
'xep_0223', # Persistent Storage of Private Data via Pubsub 'xep_0223', # Persistent Storage of Private Data via Pubsub
'xep_0224', # Attention 'xep_0224', # Attention

View File

@ -0,0 +1,16 @@
"""
SleekXMPP: The Sleek XMPP Library
Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
This file is part of SleekXMPP.
See the file LICENSE for copying permission.
"""
from sleekxmpp.plugins.base import register_plugin
from sleekxmpp.plugins.xep_0221 import stanza
from sleekxmpp.plugins.xep_0221.stanza import Media, URI
from sleekxmpp.plugins.xep_0221.media import XEP_0221
register_plugin(XEP_0221)

View File

@ -0,0 +1,27 @@
"""
SleekXMPP: The Sleek XMPP Library
Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
This file is part of SleekXMPP.
See the file LICENSE for copying permission.
"""
import logging
from sleekxmpp.plugins import BasePlugin
from sleekxmpp.xmlstream import register_stanza_plugin
from sleekxmpp.plugins.xep_0221 import stanza, Media, URI
from sleekxmpp.plugins.xep_0004 import FormField
log = logging.getLogger(__name__)
class XEP_0221(BasePlugin):
name = 'xep_0221'
description = 'XEP-0221: Data Forms Media Element'
dependencies = set(['xep_0004'])
def plugin_init(self):
register_stanza_plugin(FormField, Media)

View File

@ -0,0 +1,42 @@
"""
SleekXMPP: The Sleek XMPP Library
Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
This file is part of SleekXMPP.
See the file LICENSE for copying permission.
"""
from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin
class Media(ElementBase):
name = 'media'
namespace = 'urn:xmpp:media-element'
plugin_attrib = 'media'
interfaces = set(['height', 'width', 'alt'])
def add_uri(self, value, itype):
uri = URI()
uri['value'] = value
uri['type'] = itype
self.append(uri)
class URI(ElementBase):
name = 'uri'
namespace = 'urn:xmpp:media-element'
plugin_attrib = 'uri'
plugin_multi_attrib = 'uris'
interfaces = set(['type', 'value'])
def get_value(self):
return self.xml.text
def set_value(self, value):
self.xml.text = value
def del_value(self):
sel.xml.text = ''
register_stanza_plugin(Media, URI, iterable=True)