Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for slixmpp.plugins.xep_0203.stanza
# Slixmpp: The Slick XMPP Library
# Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout
# This file is part of Slixmpp.
# See the file LICENSE for copying permission.
import datetime as dt
from slixmpp.jid import JID
from slixmpp.xmlstream import ElementBase
from slixmpp.plugins import xep_0082
[docs]
class Delay ( ElementBase ):
name = 'delay'
namespace = 'urn:xmpp:delay'
plugin_attrib = 'delay'
interfaces = { 'from' , 'stamp' , 'text' }
[docs]
def get_from ( self ):
from_ = self . _get_attr ( 'from' )
return JID ( from_ ) if from_ else None
[docs]
def set_from ( self , value ):
self . _set_attr ( 'from' , str ( value ))
[docs]
def get_stamp ( self ):
timestamp = self . _get_attr ( 'stamp' )
return xep_0082 . parse ( timestamp ) if timestamp else None
[docs]
def set_stamp ( self , value ):
if isinstance ( value , dt . datetime ):
if value . tzinfo is None :
raise ValueError ( f 'Datetime provided without timezone information: { value } ' )
if value . tzinfo != dt . timezone . utc :
value = value . astimezone ( dt . timezone . utc )
value = xep_0082 . format_datetime ( value )
self . _set_attr ( 'stamp' , value )
[docs]
def get_text ( self ):
return self . xml . text
[docs]
def set_text ( self , value ):
self . xml . text = value
[docs]
def del_text ( self ):
self . xml . text = ''