summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0332
diff options
context:
space:
mode:
authorSangeeth Saravanaraj <sangeeth@riptideio.com>2015-04-29 14:44:25 +0530
committerSangeeth Saravanaraj <sangeeth@riptideio.com>2015-04-29 14:44:25 +0530
commit61a7cecb319c5628973906250ed973f21883cfd4 (patch)
treefd2ffea9cbe160dd92fad74a1ce577a22ab2be4b /sleekxmpp/plugins/xep_0332
parent80b60fc0483b21c8d5829b61cabbf9b46aa2c2fb (diff)
downloadslixmpp-61a7cecb319c5628973906250ed973f21883cfd4.tar.gz
slixmpp-61a7cecb319c5628973906250ed973f21883cfd4.tar.bz2
slixmpp-61a7cecb319c5628973906250ed973f21883cfd4.tar.xz
slixmpp-61a7cecb319c5628973906250ed973f21883cfd4.zip
Prefixed request, response and data with http. Avoided (plugin_attrib) name collision with other plugins.
Diffstat (limited to 'sleekxmpp/plugins/xep_0332')
-rw-r--r--sleekxmpp/plugins/xep_0332/http.py56
-rw-r--r--sleekxmpp/plugins/xep_0332/stanza/__init__.py6
-rw-r--r--sleekxmpp/plugins/xep_0332/stanza/data.py4
-rw-r--r--sleekxmpp/plugins/xep_0332/stanza/request.py18
-rw-r--r--sleekxmpp/plugins/xep_0332/stanza/response.py13
5 files changed, 59 insertions, 38 deletions
diff --git a/sleekxmpp/plugins/xep_0332/http.py b/sleekxmpp/plugins/xep_0332/http.py
index 36b6995f..acaef505 100644
--- a/sleekxmpp/plugins/xep_0332/http.py
+++ b/sleekxmpp/plugins/xep_0332/http.py
@@ -17,7 +17,9 @@ from sleekxmpp.xmlstream.handler import Callback
from sleekxmpp.xmlstream.matcher import StanzaPath
from sleekxmpp.plugins.base import BasePlugin
-from sleekxmpp.plugins.xep_0332.stanza import Request, Response, Data
+from sleekxmpp.plugins.xep_0332.stanza import (
+ HTTPRequest, HTTPResponse, HTTPData
+)
from sleekxmpp.plugins.xep_0131.stanza import Headers
@@ -50,18 +52,26 @@ class XEP_0332(BasePlugin):
}
def plugin_init(self):
- self.xmpp.register_handler(Callback(
- 'HTTP Request', StanzaPath('iq/req'), self._handle_request
- ))
- self.xmpp.register_handler(Callback(
- 'HTTP Response', StanzaPath('iq/resp'), self._handle_response
- ))
- register_stanza_plugin(Iq, Request, iterable=True)
- register_stanza_plugin(Iq, Response, iterable=True)
- register_stanza_plugin(Request, Headers, iterable=True)
- register_stanza_plugin(Request, Data, iterable=True)
- register_stanza_plugin(Response, Headers, iterable=True)
- register_stanza_plugin(Response, Data, iterable=True)
+ self.xmpp.register_handler(
+ Callback(
+ 'HTTP Request',
+ StanzaPath('iq/http-req'),
+ self._handle_request
+ )
+ )
+ self.xmpp.register_handler(
+ Callback(
+ 'HTTP Response',
+ StanzaPath('iq/http-resp'),
+ self._handle_response
+ )
+ )
+ register_stanza_plugin(Iq, HTTPRequest, iterable=True)
+ register_stanza_plugin(Iq, HTTPResponse, iterable=True)
+ register_stanza_plugin(HTTPRequest, Headers, iterable=True)
+ register_stanza_plugin(HTTPRequest, HTTPData, iterable=True)
+ register_stanza_plugin(HTTPResponse, Headers, iterable=True)
+ register_stanza_plugin(HTTPResponse, HTTPData, iterable=True)
# TODO: Should we register any api's here? self.api.register()
def plugin_end(self):
@@ -94,12 +104,12 @@ class XEP_0332(BasePlugin):
iq['from'] = self.xmpp.boundjid
iq['to'] = to
iq['type'] = 'set'
- iq['req']['headers'] = headers
- iq['req']['method'] = method
- iq['req']['resource'] = resource
- iq['req']['version'] = '1.1' # TODO: set this implicitly
+ iq['http-req']['headers'] = headers
+ iq['http-req']['method'] = method
+ iq['http-req']['resource'] = resource
+ iq['http-req']['version'] = '1.1' # TODO: set this implicitly
if data is not None:
- iq['req']['data'] = data
+ iq['http-req']['http-data'] = data
return iq.send(
timeout=kwargs.get('timeout', None),
block=kwargs.get('block', True),
@@ -113,12 +123,12 @@ class XEP_0332(BasePlugin):
iq['from'] = self.xmpp.boundjid
iq['to'] = to
iq['type'] = 'result'
- iq['resp']['headers'] = headers
- iq['resp']['code'] = code
- iq['resp']['message'] = message
- iq['resp']['version'] = '1.1' # TODO: set this implicitly
+ iq['http-resp']['headers'] = headers
+ iq['http-resp']['code'] = code
+ iq['http-resp']['message'] = message
+ iq['http-resp']['version'] = '1.1' # TODO: set this implicitly
if data is not None:
- iq['resp']['data'] = data
+ iq['http-resp']['http-data'] = data
return iq.send(
timeout=kwargs.get('timeout', None),
block=kwargs.get('block', True),
diff --git a/sleekxmpp/plugins/xep_0332/stanza/__init__.py b/sleekxmpp/plugins/xep_0332/stanza/__init__.py
index eeab3f31..201824b7 100644
--- a/sleekxmpp/plugins/xep_0332/stanza/__init__.py
+++ b/sleekxmpp/plugins/xep_0332/stanza/__init__.py
@@ -8,6 +8,6 @@
See the file LICENSE for copying permission.
"""
-from sleekxmpp.plugins.xep_0332.stanza.request import Request
-from sleekxmpp.plugins.xep_0332.stanza.response import Response
-from sleekxmpp.plugins.xep_0332.stanza.data import Data
+from sleekxmpp.plugins.xep_0332.stanza.request import HTTPRequest
+from sleekxmpp.plugins.xep_0332.stanza.response import HTTPResponse
+from sleekxmpp.plugins.xep_0332.stanza.data import HTTPData
diff --git a/sleekxmpp/plugins/xep_0332/stanza/data.py b/sleekxmpp/plugins/xep_0332/stanza/data.py
index 9a08426b..765536eb 100644
--- a/sleekxmpp/plugins/xep_0332/stanza/data.py
+++ b/sleekxmpp/plugins/xep_0332/stanza/data.py
@@ -11,14 +11,14 @@
from sleekxmpp.xmlstream import ElementBase
-class Data(ElementBase):
+class HTTPData(ElementBase):
"""
The data element.
"""
name = 'data'
namespace = 'urn:xmpp:http'
interfaces = set(['data'])
- plugin_attrib = 'data'
+ plugin_attrib = 'http-data'
is_extension = True
def get_data(self, encoding='text'):
diff --git a/sleekxmpp/plugins/xep_0332/stanza/request.py b/sleekxmpp/plugins/xep_0332/stanza/request.py
index 07618727..9a298e57 100644
--- a/sleekxmpp/plugins/xep_0332/stanza/request.py
+++ b/sleekxmpp/plugins/xep_0332/stanza/request.py
@@ -11,16 +11,19 @@
from sleekxmpp.xmlstream import ElementBase
-class Request(ElementBase):
+class HTTPRequest(ElementBase):
"""
All HTTP communication is done using the `Request`/`Response` paradigm.
- Each HTTP Request is made sending an `iq` stanza containing a `req` element
- to the server. Each `iq` stanza sent is of type `set`.
+ Each HTTP Request is made sending an `iq` stanza containing a `req`
+ element to the server. Each `iq` stanza sent is of type `set`.
Examples:
<iq type='set' from='a@b.com/browser' to='x@y.com' id='1'>
- <req xmlns='urn:xmpp:http' method='GET' resource='/api/users' version='1.1'>
+ <req xmlns='urn:xmpp:http'
+ method='GET'
+ resource='/api/users'
+ version='1.1'>
<headers xmlns='http://jabber.org/protocol/shim'>
<header name='Host'>b.com</header>
</headers>
@@ -28,7 +31,10 @@ class Request(ElementBase):
</iq>
<iq type='set' from='a@b.com/browser' to='x@y.com' id='2'>
- <req xmlns='urn:xmpp:http' method='PUT' resource='/api/users' version='1.1'>
+ <req xmlns='urn:xmpp:http'
+ method='PUT'
+ resource='/api/users'
+ version='1.1'>
<headers xmlns='http://jabber.org/protocol/shim'>
<header name='Host'>b.com</header>
<header name='Content-Type'>text/html</header>
@@ -44,7 +50,7 @@ class Request(ElementBase):
name = 'request'
namespace = 'urn:xmpp:http'
interfaces = set(['method', 'resource', 'version'])
- plugin_attrib = 'req'
+ plugin_attrib = 'http-req'
def get_method(self):
return self._get_attr('method', None)
diff --git a/sleekxmpp/plugins/xep_0332/stanza/response.py b/sleekxmpp/plugins/xep_0332/stanza/response.py
index 0fc46de8..6804ade9 100644
--- a/sleekxmpp/plugins/xep_0332/stanza/response.py
+++ b/sleekxmpp/plugins/xep_0332/stanza/response.py
@@ -11,7 +11,7 @@
from sleekxmpp.xmlstream import ElementBase
-class Response(ElementBase):
+class HTTPResponse(ElementBase):
"""
When the HTTP Server responds, it does so by sending an `iq` stanza
@@ -21,8 +21,13 @@ class Response(ElementBase):
in which the original requests were made.
Examples:
- <iq type='result' from='httpserver@clayster.com' to='httpclient@clayster.com/browser' id='2'>
- <resp xmlns='urn:xmpp:http' version='1.1' statusCode='200' statusMessage='OK'>
+ <iq type='result'
+ from='httpserver@clayster.com'
+ to='httpclient@clayster.com/browser' id='2'>
+ <resp xmlns='urn:xmpp:http'
+ version='1.1'
+ statusCode='200'
+ statusMessage='OK'>
<headers xmlns='http://jabber.org/protocol/shim'>
<header name='Date'>Fri, 03 May 2013 16:39:54GMT-4</header>
<header name='Server'>Clayster</header>
@@ -42,7 +47,7 @@ class Response(ElementBase):
name = 'response'
namespace = 'urn:xmpp:http'
interfaces = set(['code', 'message', 'version'])
- plugin_attrib = 'resp'
+ plugin_attrib = 'http-resp'
def get_code(self):
code = self._get_attr('statusCode', None)