class Bot(object): def __init__(self, config_file_name): self.params = self._load_config(config_file_name) self.commands = {} def connect(self): if self.params['type'] == 'irc': from modules.irc import Server elif self.params['type'] == 'slack': from modules.irc import Server self.server = Server(self.params) def _load_config(self, config_file_name): config_params = {} with open('bot_configs/' + config_file_name, 'r') as file: for line in file.readlines(): key, value = line.split() config_params[key] = value return config_params def send(self, msg): return self.server._send(msg) def say(self, msg): return self.server.say(msg) def recv(self): return self.server._recv() def private_message(self, user, msg): self.server.private_message(user, msg) def main_loop(self): while True: data = self.recv() if self.server.ping in data: self.server.pong(data) elif self.params['nick'] in data: for key_word, function in self.commands.items(): if key_word in data: function(data) def _add_commands(self): #OVERRIDE IN SUBCLASS print('bot.py: _add_commands needs to be overwritten') exit()
def connect(self): if self.params['type'] == 'irc': from modules.irc import Server elif self.params['type'] == 'slack': from modules.irc import Server self.server = Server(self.params)