Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for slixmpp.plugins.xep_0084.stanza
# Slixmpp: The Slick XMPP Library
# Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
# This file is part of Slixmpp.
# See the file LICENSE for copying permission.
from base64 import b64encode , b64decode
from slixmpp.util import bytes
from slixmpp.xmlstream import ET , ElementBase , register_stanza_plugin
[docs]
class Data ( ElementBase ):
name = 'data'
namespace = 'urn:xmpp:avatar:data'
plugin_attrib = 'avatar_data'
interfaces = { 'value' }
[docs]
def get_value ( self ):
if self . xml . text :
return b64decode ( bytes ( self . xml . text ))
return b ''
[docs]
def set_value ( self , value ):
if value :
self . xml . text = b64encode ( bytes ( value )) . decode ()
else :
self . xml . text = ''
[docs]
def del_value ( self ):
self . xml . text = ''
[docs]
class Info ( ElementBase ):
name = 'info'
namespace = 'urn:xmpp:avatar:metadata'
plugin_attrib = 'info'
plugin_multi_attrib = 'items'
interfaces = { 'bytes' , 'height' , 'id' , 'type' , 'url' , 'width' }
def _get_int ( self , name : str ) -> int :
try :
return int ( self . _get_attr ( name ))
except ValueError :
return 0
def _set_int ( self , name : str , value : int ):
if value not in ( '' , None ):
int ( value )
self . _set_attr ( name , value )
[docs]
def get_bytes ( self ) -> int :
return self . _get_int ( 'bytes' )
def _set_bytes ( self , value : int ):
self . _set_int ( 'bytes' , value )
[docs]
def get_height ( self ) -> int :
return self . _get_int ( 'height' )
[docs]
def set_height ( self , value : int ):
self . _set_int ( 'height' , value )
[docs]
def get_width ( self ) -> int :
return self . _get_int ( 'width' )
[docs]
def set_width ( self , value : int ):
self . _set_int ( 'width' , value )
[docs]
class Pointer ( ElementBase ):
name = 'pointer'
namespace = 'urn:xmpp:avatar:metadata'
plugin_attrib = 'pointer'
plugin_multi_attrib = 'pointers'
interfaces = set ()
register_stanza_plugin ( MetaData , Info , iterable = True )
register_stanza_plugin ( MetaData , Pointer , iterable = True )