version 1.9.3 (#74)

* bring TwitchBot up to date

* prevent responses from bot nick
pull/76/head v1.9.3
Mal Hancock 2020-05-28 14:51:56 -07:00 committed by GitHub
parent 5b241eee13
commit a0378e09c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 25 deletions

View File

@ -1 +1 @@
__version__ = '1.9.2' __version__ = '1.9.3'

View File

@ -14,6 +14,22 @@ irc.client.ServerConnection.buffer_class.errors = 'replace'
class Bot(irc.bot.SingleServerIRCBot): 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): def __init__(self, channels, nickname, server, **kwargs):
self.port = kwargs.get('port', 6667) self.port = kwargs.get('port', 6667)
self.ops = kwargs.get('ops', []) self.ops = kwargs.get('ops', [])
@ -36,21 +52,6 @@ class Bot(irc.bot.SingleServerIRCBot):
self.chanlist = channels self.chanlist = channels
self.bot_nick = nickname self.bot_nick = nickname
self.start_logging() 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()} 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) 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): def process_event(self, c, e):
nick = e.source.nick nick = e.source.nick
if nick == self.bot_nick:
pass
text = e.arguments[0] text = e.arguments[0]
if e.type == 'privmsg' or e.type == 'pubmsg': if e.type == 'privmsg' or e.type == 'pubmsg':
msg_type = 'message' msg_type = 'message'
@ -313,18 +316,24 @@ class Bot(irc.bot.SingleServerIRCBot):
class TwitchBot(Bot): 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.bot_nick = nickname
self.log_level = log_level
self.start_logging() self.start_logging()
self.channel = channel self.channel = channel
self.plugin_dir = plugin_dir
self.ops = ops
server = 'irc.twitch.tv'
port = 6667
self.logger.info('Joining Twitch Server') self.logger.info('Joining Twitch Server')
irc.bot.SingleServerIRCBot.__init__(self, [(server, port, 'oauth:'+token)], nickname, nickname) irc.bot.SingleServerIRCBot.__init__(self, [('irc.twitch.tv', 6667, 'oauth:'+token)], nickname, nickname)
plugin.load_plugins(self.plugin_dir) 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): def on_welcome(self, c, e):
self.logger.info('requesting permissions') self.logger.info('requesting permissions')
@ -333,4 +342,3 @@ class TwitchBot(Bot):
c.cap('REQ', ':twitch.tv/commands') c.cap('REQ', ':twitch.tv/commands')
self.logger.info('Joining channel ' + self.channel) self.logger.info('Joining channel ' + self.channel)
c.join(self.channel) c.join(self.channel)