mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-27 19:19:54 +00:00
Added implementation for XEP-0128 Service Discovery Extensions.
Uses the alt_0004 plugin for jabber❌data stanza objects.
This commit is contained in:
parent
797e92a6a3
commit
e6bec8681e
1 changed files with 51 additions and 0 deletions
51
sleekxmpp/plugins/xep_0128.py
Normal file
51
sleekxmpp/plugins/xep_0128.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
"""
|
||||||
|
SleekXMPP: The Sleek XMPP Library
|
||||||
|
Copyright (C) 2010 Nathanael C. Fritz, Lance J.T. Stout
|
||||||
|
This file is part of SleekXMPP.
|
||||||
|
|
||||||
|
See the file license.txt for copying permission.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
from . import base
|
||||||
|
from .. xmlstream.handler.callback import Callback
|
||||||
|
from .. xmlstream.matcher.xpath import MatchXPath
|
||||||
|
from .. xmlstream.stanzabase import ElementBase, ET, JID
|
||||||
|
from .. stanza.iq import Iq
|
||||||
|
from . xep_0030 import DiscoInfo, DiscoItems
|
||||||
|
from . alt_0004 import Form
|
||||||
|
|
||||||
|
|
||||||
|
class xep_0128(base.base_plugin):
|
||||||
|
"""
|
||||||
|
XEP-0128 Service Discovery Extensions
|
||||||
|
"""
|
||||||
|
|
||||||
|
def plugin_init(self):
|
||||||
|
self.xep = '0128'
|
||||||
|
self.description = 'Service Discovery Extensions'
|
||||||
|
|
||||||
|
self.xmpp.stanzaPlugin(DiscoInfo, Form)
|
||||||
|
self.xmpp.stanzaPlugin(DiscoItems, Form)
|
||||||
|
|
||||||
|
def extend_info(self, node, data=None):
|
||||||
|
if data is None:
|
||||||
|
data = {}
|
||||||
|
node = self.xmpp['xep_0030'].nodes.get(node, None)
|
||||||
|
if node is None:
|
||||||
|
self.xmpp['xep_0030'].add_node(node)
|
||||||
|
|
||||||
|
info = node.info
|
||||||
|
info['form']['type'] = 'result'
|
||||||
|
info['form'].setFields(data, default=None)
|
||||||
|
|
||||||
|
def extend_items(self, node, data=None):
|
||||||
|
if data is None:
|
||||||
|
data = {}
|
||||||
|
node = self.xmpp['xep_0030'].nodes.get(node, None)
|
||||||
|
if node is None:
|
||||||
|
self.xmpp['xep_0030'].add_node(node)
|
||||||
|
|
||||||
|
items = node.items
|
||||||
|
items['form']['type'] = 'result'
|
||||||
|
items['form'].setFields(data, default=None)
|
Loading…
Reference in a new issue