From e9e21fa0510c68311b375e04fe7f8d1f6c8b0cd4 Mon Sep 17 00:00:00 2001 From: dpedu Date: Sat, 8 Aug 2015 15:18:58 -0700 Subject: [PATCH] Add support for user module dir --- docs/setup/initial_config.rst | 4 ++++ examples/config.json | 6 ++++-- examples/data/modules/UserModule.py | 15 +++++++++++++++ pyircbot/pyircbot.py | 5 +++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100755 examples/data/modules/UserModule.py diff --git a/docs/setup/initial_config.rst b/docs/setup/initial_config.rst index 5ed034b..1275bc7 100644 --- a/docs/setup/initial_config.rst +++ b/docs/setup/initial_config.rst @@ -61,6 +61,10 @@ options: Port on which RPC will listen +.. cmdoption:: bot.usermodules + + Paths to directories where modules where also be included from + .. cmdoption:: connection.server Hostname or IP of the IRC server to connection to diff --git a/examples/config.json b/examples/config.json index 8041429..316e433 100644 --- a/examples/config.json +++ b/examples/config.json @@ -2,7 +2,8 @@ "bot":{ "datadir":"./data/", "rpcbind":"0.0.0.0", - "rpcport":1876 + "rpcport":1876, + "usermodules": [ "./data/modules/" ] }, "connection":{ "server":"irc.freenode.net", @@ -11,6 +12,7 @@ }, "modules":[ "PingResponder", - "Services" + "Services", + "UserModule" ] } \ No newline at end of file diff --git a/examples/data/modules/UserModule.py b/examples/data/modules/UserModule.py new file mode 100755 index 0000000..8eadd5f --- /dev/null +++ b/examples/data/modules/UserModule.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +""" +.. module:: UserModule + :synopsis: Example userspace module + +.. moduleauthor:: Dave Pedu + +""" + +from pyircbot.modulebase import ModuleBase,ModuleHook + +class UserModule(ModuleBase): + def __init__(self, bot, moduleName): + ModuleBase.__init__(self, bot, moduleName) diff --git a/pyircbot/pyircbot.py b/pyircbot/pyircbot.py index 125ef1a..30e5d83 100644 --- a/pyircbot/pyircbot.py +++ b/pyircbot/pyircbot.py @@ -87,6 +87,11 @@ class PyIRCBot: """load modules specified in instance config""" " append module location to path " sys.path.append(os.path.dirname(__file__)+"/modules/") + + " append usermodule dir to beginning of path" + for path in self.botconfig["bot"]["usermodules"]: + sys.path.insert(0, path+"/") + for modulename in self.botconfig["modules"]: self.loadmodule(modulename)