diff --git a/doc/example-plugins/canary.py b/doc/example-plugins/canary.py new file mode 100644 index 0000000..2c76784 --- /dev/null +++ b/doc/example-plugins/canary.py @@ -0,0 +1,8 @@ +import time +outputs = [] + +def canary(): + #NOTE: you must add a real channel ID for this to work + outputs.append(["D12345678", "bot started: " + str(time.time())]) + +canary() diff --git a/rtmbot.py b/rtmbot.py index 56be9c4..27ab179 100755 --- a/rtmbot.py +++ b/rtmbot.py @@ -44,7 +44,10 @@ class RtmBot(object): for plugin in self.bot_plugins: for output in plugin.do_output(): channel = self.slack_client.server.channels.find(output[0]) - channel.send_message("%s" % output[1]) + if channel != None: + channel.send_message("%s" % output[1]) + else: + raise UnknownChannel def crons(self): for plugin in self.bot_plugins: plugin.do_jobs() @@ -52,7 +55,8 @@ class RtmBot(object): path = os.path.dirname(sys.argv[0]) for plugin in glob.glob(path+'/plugins/*'): sys.path.insert(0, plugin) - for plugin in glob.glob(path+'/plugins/*/*.py'): + sys.path.insert(0, path+'/plugins/') + for plugin in glob.glob(path+'/plugins/*.py') + glob.glob(path+'/plugins/*/*.py'): print plugin name = plugin.split('/')[-1][:-2] # try: @@ -115,6 +119,9 @@ class Job(object): self.lastrun = time.time() pass +class UnknownChannel(Exception): + pass + if __name__ == "__main__": config = yaml.load(file('rtmbot.conf', 'r'))