Files
ninachloe/FaustBot/Modules/BlockObserver.py
T
2024-08-17 21:02:46 +02:00

48 lines
1.7 KiB
Python

from FaustBot.Communication.Connection import Connection
from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype
from FaustBot.Model.BlockedUsers import BlockProvider
class BlockObserver(PrivMsgObserverPrototype):
@staticmethod
def cmd():
return None
@staticmethod
def help():
return None
def update_on_priv_msg(self, data, connection: Connection):
if not self._is_idented_mod(data, connection):
return
if data["message"].startswith(".block "):
self.block(data, connection)
if data["message"].startswith(".unblock"):
self.unblock(data, connection)
if data["message"].startswith(".isblocked"):
self.isBlocked(data, connection)
def block(self, data, connection):
blocklist = BlockProvider()
blocklist.block(self.isolateTarget(data))
connection.send_back(f"blocked: {self.isolateTarget(data)}", data)
def unblock(self, data, connection):
blocklist = BlockProvider()
blocklist.delete_block(self.isolateTarget(data))
connection.send_back(f"unblocked: {self.isolateTarget(data)}", data)
def isBlocked(self, data, connection):
blocklist = BlockProvider()
answ = blocklist.is_blocked(self.isolateTarget(data))
if answ:
connection.send_back(f"{self.isolateTarget(data)} ist geblocked", data)
return
connection.send_back(f"{self.isolateTarget(data)} ist nicht geblocked", data)
def isolateTarget(self, data):
return data["message"].split(" ")[1]
def _is_idented_mod(self, data: dict, connection: Connection):
return data["nick"] in self._config.mods and connection.is_idented(data["nick"])