# Slixmpp: The Slick XMPP Library# Copyright (C) 2020 Mathieu Pasquet# This file is part of Slixmpp.# See the file LICENSE for copying permission.fromtypingimportSet,Iterablefromslixmpp.xmlstreamimportElementBasetry:fromemojiimportEMOJI_DATAasUNICODE_EMOJIexceptImportError:UNICODE_EMOJI=NoneNS='urn:xmpp:reactions:0'
[docs]defget_values(self,*,all_chars=False)->Set[str]:""""Get all reactions as str"""reactions=set()forreactioninself:value=reaction['value']ifUNICODE_EMOJIandnotall_chars:ifvalueinUNICODE_EMOJI:reactions.add(reaction['value'])else:reactions.add(reaction['value'])returnreactions
[docs]defset_values(self,values:Iterable[str],*,all_chars=False):""""Set all reactions as str"""forelementinself.xml.findall('reaction'):self.xml.remove(element)forreaction_txtinvalues:reaction=Reaction()reaction.set_value(reaction_txt,all_chars=all_chars)self.append(reaction)
[docs]defset_value(self,value:str,*,all_chars=False):ifUNICODE_EMOJIandnotall_chars:ifnotvalueinUNICODE_EMOJI:raiseValueError("%s is not a valid emoji"%value)self.xml.text=value