Merge pull request #2 from archangelic/dev

Merge Dev into Master
pull/5/head v1.1.0
M. Hancock 2017-10-16 10:37:14 -07:00 committed by GitHub
commit 90ee813844
2 changed files with 34 additions and 22 deletions

View File

@ -26,20 +26,8 @@ class Bot(irc.bot.SingleServerIRCBot):
irc.bot.SingleServerIRCBot.__init__(self, [(server, self.port)], nickname, nickname) irc.bot.SingleServerIRCBot.__init__(self, [(server, self.port)], nickname, nickname)
self.chanlist = channels self.chanlist = channels
self.bot_nick = nickname self.bot_nick = nickname
self.load_plugins()
# load all plugins
plugins = []
for m in os.listdir(self.plugin_dir):
if m.endswith('.py'):
name = m[:-3]
fp, pathname, description = imp.find_module(name, [self.plugin_dir])
plugins.append(imp.load_module(name, fp, pathname, description))
# gather all commands
self.cmds = {}
for plugin in plugins:
for cmd in plugin.pinhook.plugin.cmds:
self.cmds[cmd['cmd']] = cmd['func']
def set_kwargs(self, **kwargs): def set_kwargs(self, **kwargs):
kwarguments = { kwarguments = {
@ -56,6 +44,24 @@ class Bot(irc.bot.SingleServerIRCBot):
if a not in kwargs: if a not in kwargs:
setattr(self, a, kwarguments[a]) setattr(self, a, kwarguments[a])
def load_plugins(self):
# load all plugins
plugins = []
for m in os.listdir(self.plugin_dir):
if m.endswith('.py'):
try:
name = m[:-3]
fp, pathname, description = imp.find_module(name, [self.plugin_dir])
p = imp.load_module(name, fp, pathname, description)
p.pinhook
plugins.append(p)
except Exception as e:
print(e)
# gather all commands
self.cmds = {}
for plugin in plugins:
for cmd in plugin.pinhook.plugin.cmds:
self.cmds[cmd['cmd']] = cmd['func']
def on_welcome(self, c, e): def on_welcome(self, c, e):
if self.ns_pass: if self.ns_pass:
@ -91,7 +97,11 @@ class Bot(irc.bot.SingleServerIRCBot):
helplist = sorted([i for i in self.cmds]) helplist = sorted([i for i in self.cmds])
msg = ', '.join(helplist) msg = ', '.join(helplist)
c.privmsg(chan, 'Available commands: {}'.format(msg)) c.privmsg(chan, 'Available commands: {}'.format(msg))
elif cmd == '!reload' and nick in self.ops:
self.load_plugins()
c.privmsg(chan, 'Plugins reloaded')
elif cmd in self.cmds: elif cmd in self.cmds:
try:
output = self.cmds[cmd](Message( output = self.cmds[cmd](Message(
channel=chan, channel=chan,
cmd=cmd, cmd=cmd,
@ -100,6 +110,8 @@ class Bot(irc.bot.SingleServerIRCBot):
botnick=self.bot_nick, botnick=self.bot_nick,
ops=self.ops ops=self.ops
)) ))
except Exception as e:
print(e)
if output: if output:
if output.msg_type == 'message': if output.msg_type == 'message':

View File

@ -72,7 +72,7 @@ class UploadCommand(Command):
# Where the magic happens: # Where the magic happens:
setup( setup(
name=NAME, name=NAME,
version='1.0.2', version='1.1.0',
description=DESCRIPTION, description=DESCRIPTION,
long_description=long_description, long_description=long_description,
author=AUTHOR, author=AUTHOR,