summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Taylor <bear42@gmail.com>2015-04-11 18:12:40 -0400
committerMike Taylor <bear42@gmail.com>2015-04-11 18:12:40 -0400
commit48857b0030fd53d19ebc07a50a7ec6cecdc8f558 (patch)
tree6f458d49a8cd1d9c214b90b24b2e178789b89b62
parent1fe7f5f4e6317c6287f380f56f3ce1ad2faa0638 (diff)
parent81b7b2c1908e0f6a5435ce67745b5f4dafb59816 (diff)
downloadslixmpp-48857b0030fd53d19ebc07a50a7ec6cecdc8f558.tar.gz
slixmpp-48857b0030fd53d19ebc07a50a7ec6cecdc8f558.tar.bz2
slixmpp-48857b0030fd53d19ebc07a50a7ec6cecdc8f558.tar.xz
slixmpp-48857b0030fd53d19ebc07a50a7ec6cecdc8f558.zip
Merge pull request #354 from erigones/develop
Fixed bug #353 Python3 XEP-0084 error
-rwxr-xr-xexamples/set_avatar.py2
-rw-r--r--sleekxmpp/plugins/xep_0084/stanza.py9
2 files changed, 7 insertions, 4 deletions
diff --git a/examples/set_avatar.py b/examples/set_avatar.py
index cae93c99..08e0b664 100755
--- a/examples/set_avatar.py
+++ b/examples/set_avatar.py
@@ -63,7 +63,7 @@ class AvatarSetter(sleekxmpp.ClientXMPP):
avatar_file = None
try:
- avatar_file = open(os.path.expanduser(self.filepath))
+ avatar_file = open(os.path.expanduser(self.filepath), 'rb')
except IOError:
print('Could not find file: %s' % self.filepath)
return self.disconnect()
diff --git a/sleekxmpp/plugins/xep_0084/stanza.py b/sleekxmpp/plugins/xep_0084/stanza.py
index 22f11b72..fd21e6f1 100644
--- a/sleekxmpp/plugins/xep_0084/stanza.py
+++ b/sleekxmpp/plugins/xep_0084/stanza.py
@@ -8,7 +8,7 @@
from base64 import b64encode, b64decode
-from sleekxmpp.util import bytes
+from sleekxmpp.util import bytes as sbytes
from sleekxmpp.xmlstream import ET, ElementBase, register_stanza_plugin
@@ -20,12 +20,15 @@ class Data(ElementBase):
def get_value(self):
if self.xml.text:
- return b64decode(bytes(self.xml.text))
+ return b64decode(sbytes(self.xml.text))
return ''
def set_value(self, value):
if value:
- self.xml.text = b64encode(bytes(value))
+ self.xml.text = b64encode(sbytes(value))
+ # Python3 base64 encoded is bytes and needs to be decoded to string
+ if isinstance(self.xml.text, bytes):
+ self.xml.text = self.xml.text.decode()
else:
self.xml.text = ''