Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for slixmpp.plugins.xep_0184.stanza
# Slixmpp: The Slick XMPP Library
# Copyright (C) 2012 Erik Reuterborg Larsson, Nathanael C. Fritz
# This file is part of Slixmpp.
# See the file LICENSE for copying permission.
from slixmpp.xmlstream.stanzabase import ElementBase , ET
[docs]
class Request ( ElementBase ):
namespace = 'urn:xmpp:receipts'
name = 'request'
plugin_attrib = 'request_receipt'
interfaces = { 'request_receipt' }
sub_interfaces = interfaces
is_extension = True
[docs]
def setup ( self , xml = None ):
self . xml = ET . Element ( '' )
return True
[docs]
def set_request_receipt ( self , val ):
self . del_request_receipt ()
if val :
parent = self . parent ()
parent . _set_sub_text ( "{ %s }request" % self . namespace , keep = True )
if not parent [ 'id' ]:
if parent . stream :
parent [ 'id' ] = parent . stream . new_id ()
[docs]
def get_request_receipt ( self ):
parent = self . parent ()
if parent . xml . find ( "{ %s }request" % self . namespace ) is not None :
return True
else :
return False
[docs]
def del_request_receipt ( self ):
self . parent () . _del_sub ( "{ %s }request" % self . namespace )
[docs]
class Received ( ElementBase ):
namespace = 'urn:xmpp:receipts'
name = 'received'
plugin_attrib = 'receipt'
interfaces = { 'receipt' }
sub_interfaces = interfaces
is_extension = True
[docs]
def setup ( self , xml = None ):
self . xml = ET . Element ( '' )
return True
[docs]
def set_receipt ( self , value ):
self . del_receipt ()
if value :
parent = self . parent ()
xml = ET . Element ( "{ %s }received" % self . namespace )
xml . attrib [ 'id' ] = value
parent . append ( xml )
[docs]
def get_receipt ( self ):
parent = self . parent ()
xml = parent . xml . find ( "{ %s }received" % self . namespace )
if xml is not None :
return xml . attrib . get ( 'id' , '' )
return ''
[docs]
def del_receipt ( self ):
self . parent () . _del_sub ( '{ %s }received' % self . namespace )