# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: 2010, 2011 Anaƫl Verrier <elghinn@free.fr>
-# SPDX-FileCopyrightText: 2014, 2020 kaliko <kaliko@azylum.org>
+# SPDX-FileCopyrightText: 2014, 2020, 2023 kaliko <kaliko@azylum.org>
+
+import logging
+
+from slixmpp.exceptions import XMPPError
from .sid import botcmd
:param sid.sid.MUCBot bot: bot the plugin is load from
"""
+ #: Overriding bot log level for the plugin
+ log_level = None
def __init__(self, bot):
self.bot = bot
self.log = bot.log.getChild(self.__class__.__name__)
#: :py:obj:`list` : List of tuples (event, handler)
self.handlers = []
+ if self.log_level:
+ self.log.setLevel(self.log_level)
def add_handlers(self):
"""Add handlers declared in self.hanlders"""
to = rcv['mucroom']
self.send(to, msg, mtype=rcv['type'])
+ async def ban(self, jid, reason):
+ """Coroutine to ban a jid from the room
+
+ :param str jid: JID to ban
+ :param str reason: Reason
+ """
+ room = self.bot.room
+ try:
+ await self.bot['xep_0045'].set_affiliation(room,
+ jid=jid, affiliation='outcast', reason=reason)
+ except XMPPError as error:
+ self.log.error(error)
+
def shutdown(self):
"""Empty method to override. Called on bot shutdown"""
pass