summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0079
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0079')
-rw-r--r--sleekxmpp/plugins/xep_0079/__init__.py18
-rw-r--r--sleekxmpp/plugins/xep_0079/amp.py79
-rw-r--r--sleekxmpp/plugins/xep_0079/stanza.py96
3 files changed, 0 insertions, 193 deletions
diff --git a/sleekxmpp/plugins/xep_0079/__init__.py b/sleekxmpp/plugins/xep_0079/__init__.py
deleted file mode 100644
index 09e66715..00000000
--- a/sleekxmpp/plugins/xep_0079/__init__.py
+++ /dev/null
@@ -1,18 +0,0 @@
-"""
- SleekXMPP: The Sleek XMPP Library
- Copyright (C) 2013 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_0079.stanza import (
- AMP, Rule, InvalidRules, UnsupportedConditions,
- UnsupportedActions, FailedRules, FailedRule,
- AMPFeature)
-from sleekxmpp.plugins.xep_0079.amp import XEP_0079
-
-
-register_plugin(XEP_0079)
diff --git a/sleekxmpp/plugins/xep_0079/amp.py b/sleekxmpp/plugins/xep_0079/amp.py
deleted file mode 100644
index 918fb841..00000000
--- a/sleekxmpp/plugins/xep_0079/amp.py
+++ /dev/null
@@ -1,79 +0,0 @@
-"""
- SleekXMPP: The Sleek XMPP Library
- Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout
- This file is part of SleekXMPP.
-
- See the file LICENSE for copying permissio
-"""
-
-import logging
-
-from sleekxmpp.stanza import Message, Error, StreamFeatures
-from sleekxmpp.xmlstream import register_stanza_plugin
-from sleekxmpp.xmlstream.matcher import StanzaPath, MatchMany
-from sleekxmpp.xmlstream.handler import Callback
-from sleekxmpp.plugins import BasePlugin
-from sleekxmpp.plugins.xep_0079 import stanza
-
-
-log = logging.getLogger(__name__)
-
-
-class XEP_0079(BasePlugin):
-
- """
- XEP-0079 Advanced Message Processing
- """
-
- name = 'xep_0079'
- description = 'XEP-0079: Advanced Message Processing'
- dependencies = set(['xep_0030'])
- stanza = stanza
-
- def plugin_init(self):
- register_stanza_plugin(Message, stanza.AMP)
- register_stanza_plugin(Error, stanza.InvalidRules)
- register_stanza_plugin(Error, stanza.UnsupportedConditions)
- register_stanza_plugin(Error, stanza.UnsupportedActions)
- register_stanza_plugin(Error, stanza.FailedRules)
-
- self.xmpp.register_handler(
- Callback('AMP Response',
- MatchMany([
- StanzaPath('message/error/failed_rules'),
- StanzaPath('message/amp')
- ]),
- self._handle_amp_response))
-
- if not self.xmpp.is_component:
- self.xmpp.register_feature('amp',
- self._handle_amp_feature,
- restart=False,
- order=9000)
- register_stanza_plugin(StreamFeatures, stanza.AMPFeature)
-
- def plugin_end(self):
- self.xmpp.remove_handler('AMP Response')
-
- def _handle_amp_response(self, msg):
- log.debug('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
- if msg['type'] == 'error':
- self.xmpp.event('amp_error', msg)
- elif msg['amp']['status'] in ('alert', 'notify'):
- self.xmpp.event('amp_%s' % msg['amp']['status'], msg)
-
- def _handle_amp_feature(self, features):
- log.debug('Advanced Message Processing is available.')
- self.xmpp.features.add('amp')
-
- def discover_support(self, jid=None, **iqargs):
- if jid is None:
- if self.xmpp.is_component:
- jid = self.xmpp.server_host
- else:
- jid = self.xmpp.boundjid.host
-
- return self.xmpp['xep_0030'].get_info(
- jid=jid,
- node='http://jabber.org/protocol/amp',
- **iqargs)
diff --git a/sleekxmpp/plugins/xep_0079/stanza.py b/sleekxmpp/plugins/xep_0079/stanza.py
deleted file mode 100644
index cb6932d6..00000000
--- a/sleekxmpp/plugins/xep_0079/stanza.py
+++ /dev/null
@@ -1,96 +0,0 @@
-"""
- SleekXMPP: The Sleek XMPP Library
- Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout
- This file is part of SleekXMPP.
-
- See the file LICENSE for copying permission.
-"""
-
-from __future__ import unicode_literals
-
-from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin
-
-
-class AMP(ElementBase):
- namespace = 'http://jabber.org/protocol/amp'
- name = 'amp'
- plugin_attrib = 'amp'
- interfaces = set(['from', 'to', 'status', 'per_hop'])
-
- def get_from(self):
- return JID(self._get_attr('from'))
-
- def set_from(self, value):
- return self._set_attr('from', str(value))
-
- def get_to(self):
- return JID(self._get_attr('from'))
-
- def set_to(self, value):
- return self._set_attr('to', str(value))
-
- def get_per_hop(self):
- return self._get_attr('per-hop') == 'true'
-
- def set_per_hop(self, value):
- if value:
- return self._set_attr('per-hop', 'true')
- else:
- return self._del_attr('per-hop')
-
- def del_per_hop(self):
- return self._del_attr('per-hop')
-
- def add_rule(self, action, condition, value):
- rule = Rule(parent=self)
- rule['action'] = action
- rule['condition'] = condition
- rule['value'] = value
-
-
-class Rule(ElementBase):
- namespace = 'http://jabber.org/protocol/amp'
- name = 'rule'
- plugin_attrib = name
- plugin_multi_attrib = 'rules'
- interfaces = set(['action', 'condition', 'value'])
-
-
-class InvalidRules(ElementBase):
- namespace = 'http://jabber.org/protocol/amp'
- name = 'invalid-rules'
- plugin_attrib = 'invalid_rules'
-
-
-class UnsupportedConditions(ElementBase):
- namespace = 'http://jabber.org/protocol/amp'
- name = 'unsupported-conditions'
- plugin_attrib = 'unsupported_conditions'
-
-
-class UnsupportedActions(ElementBase):
- namespace = 'http://jabber.org/protocol/amp'
- name = 'unsupported-actions'
- plugin_attrib = 'unsupported_actions'
-
-
-class FailedRule(Rule):
- namespace = 'http://jabber.org/protocol/amp#errors'
-
-
-class FailedRules(ElementBase):
- namespace = 'http://jabber.org/protocol/amp#errors'
- name = 'failed-rules'
- plugin_attrib = 'failed_rules'
-
-
-class AMPFeature(ElementBase):
- namespace = 'http://jabber.org/features/amp'
- name = 'amp'
-
-
-register_stanza_plugin(AMP, Rule, iterable=True)
-register_stanza_plugin(InvalidRules, Rule, iterable=True)
-register_stanza_plugin(UnsupportedConditions, Rule, iterable=True)
-register_stanza_plugin(UnsupportedActions, Rule, iterable=True)
-register_stanza_plugin(FailedRules, FailedRule, iterable=True)