Source code for slixmpp.plugins.xep_0377.spam_reporting
# Slixmpp: The Slick XMPP Library# Copyright (C) 2020 Mathieu Pasquet# This file is part of Slixmpp.# See the file LICENSE for copying permission.importloggingfromasyncioimportFuturefromtypingimport(Literal,List,Optional,Set,Union,)importslixmppfromslixmppimportMessagefromslixmpp.jidimportJIDfromslixmpp.pluginsimportBasePluginfromslixmpp.xmlstreamimportregister_stanza_pluginfromslixmpp.xmlstream.handlerimportCallbackfromslixmpp.xmlstream.matcherimportStanzaPathfromslixmpp.plugins.xep_0377importstanzafromslixmpp.plugins.xep_0191importBlockItemlog=logging.getLogger(__name__)BlockedJIDs=Union[JID,Set[JID],List[JID],]
[docs]defreport(self,jids:BlockedJIDs,reason:Literal['spam','abuse']='spam',ifrom:Optional[JID]=None,**iqkwargs,)->Future:"""Report a JID or a list of JIDs. :param jids: JID(s) to block. """iq=self.xmpp.make_iq_set(ifrom=ifrom)ifnotisinstance(jids,(set,list)):jids=[jids]forjidinjids:item=BlockItem(parent=iq['block'])item['jid']=jidifreason=='spam':item['report']['reason']=self.SPAMelse:item['report']['reason']=self.ABUSEreturniq.send(**iqkwargs)