Merge branch 'master' into develop
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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}
|
||||
|
||||
26
sleekxmpp/plugins/xep_0106.py
Normal file
26
sleekxmpp/plugins/xep_0106.py
Normal 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)
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user