misc updates..
This commit is contained in:
parent
c16b862200
commit
8bc70264ef
@ -50,26 +50,21 @@ class XEP_0332(BasePlugin):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def plugin_init(self):
|
def plugin_init(self):
|
||||||
log.debug("XEP_0332:: plugin_init()")
|
|
||||||
|
|
||||||
self.xmpp.register_handler(Callback(
|
self.xmpp.register_handler(Callback(
|
||||||
'HTTP Request', StanzaPath('iq/req'), self._handle_request
|
'HTTP Request', StanzaPath('iq/req'), self._handle_request
|
||||||
))
|
))
|
||||||
self.xmpp.register_handler(Callback(
|
self.xmpp.register_handler(Callback(
|
||||||
'HTTP Response', StanzaPath('iq/resp'), self._handle_response
|
'HTTP Response', StanzaPath('iq/resp'), self._handle_response
|
||||||
))
|
))
|
||||||
|
|
||||||
register_stanza_plugin(Iq, Request, iterable=True)
|
register_stanza_plugin(Iq, Request, iterable=True)
|
||||||
register_stanza_plugin(Iq, Response, iterable=True)
|
register_stanza_plugin(Iq, Response, iterable=True)
|
||||||
register_stanza_plugin(Request, Headers, iterable=True)
|
register_stanza_plugin(Request, Headers, iterable=True)
|
||||||
register_stanza_plugin(Request, Data, iterable=True)
|
register_stanza_plugin(Request, Data, iterable=True)
|
||||||
register_stanza_plugin(Response, Headers, iterable=True)
|
register_stanza_plugin(Response, Headers, iterable=True)
|
||||||
register_stanza_plugin(Response, Data, iterable=True)
|
register_stanza_plugin(Response, Data, iterable=True)
|
||||||
|
|
||||||
# TODO: Should we register any api's here? self.api.register()
|
# TODO: Should we register any api's here? self.api.register()
|
||||||
|
|
||||||
def plugin_end(self):
|
def plugin_end(self):
|
||||||
log.debug("XEP_0332:: plugin_end()")
|
|
||||||
self.xmpp.remove_handler('HTTP Request')
|
self.xmpp.remove_handler('HTTP Request')
|
||||||
self.xmpp.remove_handler('HTTP Response')
|
self.xmpp.remove_handler('HTTP Response')
|
||||||
self.xmpp['xep_0030'].del_feature('urn:xmpp:http')
|
self.xmpp['xep_0030'].del_feature('urn:xmpp:http')
|
||||||
@ -79,7 +74,6 @@ class XEP_0332(BasePlugin):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def session_bind(self, jid):
|
def session_bind(self, jid):
|
||||||
log.debug("XEP_0332:: session_bind()")
|
|
||||||
self.xmpp['xep_0030'].add_feature('urn:xmpp:http')
|
self.xmpp['xep_0030'].add_feature('urn:xmpp:http')
|
||||||
for header in self.supported_headers:
|
for header in self.supported_headers:
|
||||||
self.xmpp['xep_0030'].add_feature(
|
self.xmpp['xep_0030'].add_feature(
|
||||||
@ -89,18 +83,13 @@ class XEP_0332(BasePlugin):
|
|||||||
# self.xmpp['xep_0131'].supported_headers.add(header)
|
# self.xmpp['xep_0131'].supported_headers.add(header)
|
||||||
|
|
||||||
def _handle_request(self, iq):
|
def _handle_request(self, iq):
|
||||||
log.debug("XEP_0332:: _handle_request()")
|
|
||||||
print iq
|
|
||||||
self.xmpp.event('http_request', iq)
|
self.xmpp.event('http_request', iq)
|
||||||
|
|
||||||
def _handle_response(self, iq):
|
def _handle_response(self, iq):
|
||||||
log.debug("XEP_0332:: _handle_response()")
|
|
||||||
print iq
|
|
||||||
self.xmpp.event('http_response', iq)
|
self.xmpp.event('http_response', iq)
|
||||||
|
|
||||||
def send_request(self, to=None, method=None, resource=None, headers=None,
|
def send_request(self, to=None, method=None, resource=None, headers=None,
|
||||||
data=None, **kwargs):
|
data=None, **kwargs):
|
||||||
log.debug("XEP_0332:: send_request()")
|
|
||||||
iq = self.xmpp.Iq()
|
iq = self.xmpp.Iq()
|
||||||
iq['from'] = self.xmpp.boundjid
|
iq['from'] = self.xmpp.boundjid
|
||||||
iq['to'] = to
|
iq['to'] = to
|
||||||
@ -109,29 +98,46 @@ class XEP_0332(BasePlugin):
|
|||||||
iq['req']['method'] = method
|
iq['req']['method'] = method
|
||||||
iq['req']['resource'] = resource
|
iq['req']['resource'] = resource
|
||||||
iq['req']['version'] = '1.1' # TODO: set this implicitly
|
iq['req']['version'] = '1.1' # TODO: set this implicitly
|
||||||
if data:
|
if data is not None:
|
||||||
iq['req']['data'] = data
|
iq['req']['data'] = data
|
||||||
print iq
|
return iq.send(
|
||||||
return iq.send(timeout=kwargs.get('timeout', None),
|
timeout=kwargs.get('timeout', None),
|
||||||
block=kwargs.get('block', True),
|
block=kwargs.get('block', True),
|
||||||
callback=kwargs.get('callback', None),
|
callback=kwargs.get('callback', None),
|
||||||
timeout_callback=kwargs.get('timeout_callback', None))
|
timeout_callback=kwargs.get('timeout_callback', None)
|
||||||
|
)
|
||||||
|
|
||||||
def send_response(self, to=None, code=None, headers=None, data=None,
|
def send_response(self, to=None, code=None, message=None, headers=None,
|
||||||
**kwargs):
|
data=None, **kwargs):
|
||||||
log.debug("XEP_0332:: send_response()")
|
|
||||||
iq = self.xmpp.Iq()
|
iq = self.xmpp.Iq()
|
||||||
iq['from'] = self.xmpp.boundjid
|
iq['from'] = self.xmpp.boundjid
|
||||||
iq['to'] = to
|
iq['to'] = to
|
||||||
iq['type'] = 'result'
|
iq['type'] = 'result'
|
||||||
iq['resp']['headers'] = headers
|
iq['resp']['headers'] = headers
|
||||||
iq['resp']['code'] = code
|
iq['resp']['code'] = code
|
||||||
|
iq['resp']['message'] = message
|
||||||
iq['resp']['version'] = '1.1' # TODO: set this implicitly
|
iq['resp']['version'] = '1.1' # TODO: set this implicitly
|
||||||
if data:
|
if data is not None:
|
||||||
iq['resp']['data'] = data
|
iq['resp']['data'] = data
|
||||||
print iq
|
return iq.send(
|
||||||
# return iq.send(timeout=kwargs.get('timeout', None),
|
timeout=kwargs.get('timeout', None),
|
||||||
# block=kwargs.get('block', True),
|
block=kwargs.get('block', True),
|
||||||
# callback=kwargs.get('callback', None),
|
callback=kwargs.get('callback', None),
|
||||||
# timeout_callback=kwargs.get('timeout_callback', None))
|
timeout_callback=kwargs.get('timeout_callback', None)
|
||||||
|
)
|
||||||
|
|
||||||
|
def send_error(self, to=None, ecode=500, etype='wait',
|
||||||
|
econd='internal-server-error', **kwargs):
|
||||||
|
iq = self.xmpp.Iq()
|
||||||
|
iq['type'] = 'error'
|
||||||
|
iq['from'] = self.xmpp.boundjid
|
||||||
|
iq['to'] = to
|
||||||
|
iq['error']['code'] = ecode
|
||||||
|
iq['error']['type'] = etype
|
||||||
|
iq['error']['condition'] = econd
|
||||||
|
return iq.send(
|
||||||
|
timeout=kwargs.get('timeout', None),
|
||||||
|
block=kwargs.get('block', True),
|
||||||
|
callback=kwargs.get('callback', None),
|
||||||
|
timeout_callback=kwargs.get('timeout_callback', None)
|
||||||
|
)
|
||||||
|
@ -16,14 +16,15 @@ class Data(ElementBase):
|
|||||||
The data element.
|
The data element.
|
||||||
"""
|
"""
|
||||||
name = 'data'
|
name = 'data'
|
||||||
namespace = ''
|
namespace = 'urn:xmpp:http'
|
||||||
interfaces = set(['data'])
|
interfaces = set(['data'])
|
||||||
plugin_attrib = 'data'
|
plugin_attrib = 'data'
|
||||||
|
is_extension = True
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self, encoding='text'):
|
||||||
print "Data:: get_data()"
|
data = self._get_sub_text(encoding, None)
|
||||||
|
return str(data) if data is not None else data
|
||||||
|
|
||||||
def set_data(self, data, encoding='text'):
|
def set_data(self, data, encoding='text'):
|
||||||
print "Data:: set_data()"
|
|
||||||
self._set_sub_text(encoding, text=data)
|
self._set_sub_text(encoding, text=data)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ class Request(ElementBase):
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
<iq type='set' from='a@b.com/browser' to='x@y.com' id='1'>
|
<iq type='set' from='a@b.com/browser' to='x@y.com' id='1'>
|
||||||
<req xmlns='urn:xmpp:http' method='GET' resource='/api/user' version='1.1'>
|
<req xmlns='urn:xmpp:http' method='GET' resource='/api/users' version='1.1'>
|
||||||
<headers xmlns='http://jabber.org/protocol/shim'>
|
<headers xmlns='http://jabber.org/protocol/shim'>
|
||||||
<header name='Host'>b.com</header>
|
<header name='Host'>b.com</header>
|
||||||
</headers>
|
</headers>
|
||||||
@ -35,7 +35,7 @@ class Request(ElementBase):
|
|||||||
<header name='Content-Length'>...</header>
|
<header name='Content-Length'>...</header>
|
||||||
</headers>
|
</headers>
|
||||||
<data>
|
<data>
|
||||||
<text><html><header/><body><p>Beautiful home page.</p></body></html></text>
|
<text>...</text>
|
||||||
</data>
|
</data>
|
||||||
</req>
|
</req>
|
||||||
</iq>
|
</iq>
|
||||||
@ -47,23 +47,19 @@ class Request(ElementBase):
|
|||||||
plugin_attrib = 'req'
|
plugin_attrib = 'req'
|
||||||
|
|
||||||
def get_method(self):
|
def get_method(self):
|
||||||
print "Request:: get_method()"
|
return self._get_attr('method', None)
|
||||||
|
|
||||||
def set_method(self, method):
|
def set_method(self, method):
|
||||||
print "Request:: set_method()"
|
|
||||||
self._set_attr('method', method)
|
self._set_attr('method', method)
|
||||||
|
|
||||||
def get_resource(self):
|
def get_resource(self):
|
||||||
print "Request:: get_resource()"
|
return self._get_attr('resource', None)
|
||||||
|
|
||||||
def set_resource(self, resource):
|
def set_resource(self, resource):
|
||||||
print "Request:: set_resource()"
|
|
||||||
self._set_attr('resource', resource)
|
self._set_attr('resource', resource)
|
||||||
|
|
||||||
def get_version(self):
|
def get_version(self):
|
||||||
print "Request:: get_version()"
|
return self._get_attr('version', None)
|
||||||
|
|
||||||
def set_version(self, version='1.1'):
|
def set_version(self, version='1.1'):
|
||||||
print "Request:: set_version()"
|
|
||||||
self._set_attr('version', version)
|
self._set_attr('version', version)
|
||||||
|
|
||||||
|
@ -41,17 +41,21 @@ class Response(ElementBase):
|
|||||||
|
|
||||||
name = 'response'
|
name = 'response'
|
||||||
namespace = 'urn:xmpp:http'
|
namespace = 'urn:xmpp:http'
|
||||||
interfaces = set(['code', 'version'])
|
interfaces = set(['code', 'message', 'version'])
|
||||||
plugin_attrib = 'resp'
|
plugin_attrib = 'resp'
|
||||||
|
|
||||||
def get_code(self):
|
def get_code(self):
|
||||||
print "Response:: get_code()"
|
code = self._get_attr('statusCode', None)
|
||||||
|
return int(code) if code is not None else code
|
||||||
|
|
||||||
def set_code(self, code):
|
def set_code(self, code):
|
||||||
print "Response:: set_code()"
|
|
||||||
self._set_attr('statusCode', str(code))
|
self._set_attr('statusCode', str(code))
|
||||||
self._set_attr('statusMessage', str(code))
|
|
||||||
|
def get_message(self):
|
||||||
|
return self._get_attr('statusMessage', '')
|
||||||
|
|
||||||
|
def set_message(self, message):
|
||||||
|
self._set_attr('statusMessage', message)
|
||||||
|
|
||||||
def set_version(self, version='1.1'):
|
def set_version(self, version='1.1'):
|
||||||
print "Response:: set_version()"
|
|
||||||
self._set_attr('version', version)
|
self._set_attr('version', version)
|
||||||
|
Loading…
Reference in New Issue
Block a user