Files
ninachloe/FaustBot/Modules/BlockObserver.py
2022-08-12 10:41:11 +02:00

45 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'].find('.block ') != -1:
self.block(data, connection)
if data['message'].find ('.unblock')!=-1:
self.unblock(data, connection)
if data['message'].find('.isblocked') != -1:
self.isBlocked(data, connection)
def block(self,data,connection):
blocklist = BlockProvider()
blocklist.block(self.isolateTarget(data))
connection.send_back("blocked: "+ self.isolateTarget(data), data)
def unblock(self,data,connection):
blocklist = BlockProvider()
blocklist.delete_block(self.isolateTarget(data))
connection.send_back("unblocked: "+ self.isolateTarget(data), data)
def isBlocked(self,data,connection):
blocklist= BlockProvider()
answ = blocklist.is_blocked(self.isolateTarget(data))
if answ:
connection.send_back(self.isolateTarget(data) + " ist geblocked", data)
return
connection.send_back(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'])