Merge branch 'master' into develop

This commit is contained in:
Lance Stout
2012-07-24 20:01:18 -07:00
24 changed files with 936 additions and 212 deletions

View File

@@ -37,6 +37,7 @@ __all__ = [
'xep_0085', # Chat State Notifications
'xep_0086', # Legacy Error Codes
'xep_0092', # Software Version
'xep_0106', # JID Escaping
'xep_0107', # User Mood
'xep_0108', # User Activity
'xep_0115', # Entity Capabilities

View File

@@ -1,11 +1,8 @@
import socket
import threading
import logging
try:
import queue
except ImportError:
import Queue as queue
from sleekxmpp.util import Queue
from sleekxmpp.exceptions import XMPPError
@@ -33,7 +30,7 @@ class IBBytestream(object):
self.stream_in_closed = threading.Event()
self.stream_out_closed = threading.Event()
self.recv_queue = queue.Queue()
self.recv_queue = Queue()
self.send_window = threading.BoundedSemaphore(value=self.window_size)
self.window_ids = set()

View File

@@ -41,6 +41,9 @@ class XEP_0084(BasePlugin):
def session_bind(self, jid):
self.xmpp['xep_0163'].register_pep('avatar_metadata', MetaData)
def generate_id(self, data):
return hashlib.sha1(data).hexdigest()
def retrieve_avatar(self, jid, id, url=None, ifrom=None, block=True,
callback=None, timeout=None):
return self.xmpp['xep_0060'].get_item(jid, Data.namespace, id,
@@ -54,8 +57,7 @@ class XEP_0084(BasePlugin):
payload = Data()
payload['value'] = data
return self.xmpp['xep_0163'].publish(payload,
node=Data.namespace,
id=hashlib.sha1(data).hexdigest(),
id=self.generate_id(data),
ifrom=ifrom,
block=block,
callback=callback,
@@ -72,12 +74,12 @@ class XEP_0084(BasePlugin):
height=info.get('height', ''),
width=info.get('width', ''),
url=info.get('url', ''))
for pointer in pointers:
metadata.add_pointer(pointer)
return self.xmpp['xep_0163'].publish(payload,
node=Data.namespace,
id=hashlib.sha1(data).hexdigest(),
if pointers is not None:
for pointer in pointers:
metadata.add_pointer(pointer)
return self.xmpp['xep_0163'].publish(metadata,
ifrom=ifrom,
block=block,
callback=callback,

View File

@@ -43,7 +43,7 @@ class MetaData(ElementBase):
info = Info()
info.values = {'id': id,
'type': itype,
'bytes': ibytes,
'bytes': '%s' % ibytes,
'height': height,
'width': width,
'url': url}

View File

@@ -0,0 +1,26 @@
"""
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 import BasePlugin, register_plugin
class XEP_0106(BasePlugin):
name = 'xep_0106'
description = 'XEP-0106: JID Escaping'
dependencies = set(['xep_0030'])
def session_bind(self, jid):
self.xmpp['xep_0030'].add_feature(feature='jid\\20escaping')
def plugin_end(self):
self.xmpp['xep_0030'].del_feature(feature='jid\\20escaping')
register_plugin(XEP_0106)

View File

@@ -75,6 +75,9 @@ class XEP_0153(BasePlugin):
return stanza
def _reset_hash(self, jid=None):
if jid is None:
jid = self.xmpp.boundjid
own_jid = (jid.bare == self.xmpp.boundjid.bare)
if self.xmpp.is_component:
own_jid = (jid.domain == self.xmpp.boundjid.domain)