From a0378e09c92418f993f7cf90764fef95ddd76b0c Mon Sep 17 00:00:00 2001 From: Mal Hancock Date: Thu, 28 May 2020 14:51:56 -0700 Subject: [PATCH] version 1.9.3 (#74) * bring TwitchBot up to date * prevent responses from bot nick --- pinhook/__version__.py | 2 +- pinhook/bot.py | 56 ++++++++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/pinhook/__version__.py b/pinhook/__version__.py index 4175d39..be0b610 100644 --- a/pinhook/__version__.py +++ b/pinhook/__version__.py @@ -1 +1 @@ -__version__ = '1.9.2' +__version__ = '1.9.3' diff --git a/pinhook/bot.py b/pinhook/bot.py index f8c4a0c..39999d0 100644 --- a/pinhook/bot.py +++ b/pinhook/bot.py @@ -14,6 +14,22 @@ irc.client.ServerConnection.buffer_class.errors = 'replace' class Bot(irc.bot.SingleServerIRCBot): + output_message = plugin.message + output_action = plugin.action + internal_commands = { + 'join': 'join a channel', + 'quit': 'force the bot to quit', + 'reload': 'force bot to reload all plugins', + 'enable': 'enable a plugin', + 'disable': 'disable a plugin', + 'op': 'add a user as bot operator', + 'deop': 'remove a user as bot operator', + 'ops': 'list all ops', + 'ban': 'ban a user from using the bot', + 'unban': 'remove bot ban for user', + 'banlist': 'currently banned nicks' + } + def __init__(self, channels, nickname, server, **kwargs): self.port = kwargs.get('port', 6667) self.ops = kwargs.get('ops', []) @@ -36,21 +52,6 @@ class Bot(irc.bot.SingleServerIRCBot): self.chanlist = channels self.bot_nick = nickname self.start_logging() - self.output_message = plugin.message - self.output_action = plugin.action - self.internal_commands = { - 'join': 'join a channel', - 'quit': 'force the bot to quit', - 'reload': 'force bot to reload all plugins', - 'enable': 'enable a plugin', - 'disable': 'disable a plugin', - 'op': 'add a user as bot operator', - 'deop': 'remove a user as bot operator', - 'ops': 'list all ops', - 'ban': 'ban a user from using the bot', - 'unban': 'remove bot ban for user', - 'banlist': 'currently banned nicks' - } self.internal_commands = {self.cmd_prefix + k: v for k,v in self.internal_commands.items()} plugin.load_plugins(self.plugin_dir, use_prefix=self.use_prefix_for_plugins, cmd_prefix=self.cmd_prefix) @@ -248,6 +249,8 @@ class Bot(irc.bot.SingleServerIRCBot): def process_event(self, c, e): nick = e.source.nick + if nick == self.bot_nick: + pass text = e.arguments[0] if e.type == 'privmsg' or e.type == 'pubmsg': msg_type = 'message' @@ -313,18 +316,24 @@ class Bot(irc.bot.SingleServerIRCBot): class TwitchBot(Bot): - def __init__(self, nickname, channel, token, plugin_dir='plugins', log_level='info', ops=[]): + def __init__(self, nickname, channel, token, **kwargs): + self.port = kwargs.get('port', 6667) + self.ops = kwargs.get('ops', []) + self.plugin_dir = kwargs.get('plugin_dir', 'plugins') + self.log_level = kwargs.get('log_level', 'info') + self.log_file = kwargs.get('log_file', None) + self.server_pass = kwargs.get('server_pass', None) + self.cmd_prefix = kwargs.get('cmd_prefix', '!') + self.use_prefix_for_plugins = kwargs.get('use_prefix_for_plugins', False) + self.disable_help = kwargs.get('disable_help', False) + self.banned_users = kwargs.get('banned_users', []) self.bot_nick = nickname - self.log_level = log_level self.start_logging() self.channel = channel - self.plugin_dir = plugin_dir - self.ops = ops - server = 'irc.twitch.tv' - port = 6667 self.logger.info('Joining Twitch Server') - irc.bot.SingleServerIRCBot.__init__(self, [(server, port, 'oauth:'+token)], nickname, nickname) - plugin.load_plugins(self.plugin_dir) + irc.bot.SingleServerIRCBot.__init__(self, [('irc.twitch.tv', 6667, 'oauth:'+token)], nickname, nickname) + self.internal_commands = {self.cmd_prefix + k: v for k,v in self.internal_commands.items()} + plugin.load_plugins(self.plugin_dir, use_prefix=self.use_prefix_for_plugins, cmd_prefix=self.cmd_prefix) def on_welcome(self, c, e): self.logger.info('requesting permissions') @@ -333,4 +342,3 @@ class TwitchBot(Bot): c.cap('REQ', ':twitch.tv/commands') self.logger.info('Joining channel ' + self.channel) c.join(self.channel) -