Implement loading new modules at runtime
This commit is contained in:
parent
cb7142ef88
commit
378c4d9bba
|
@ -0,0 +1,23 @@
|
||||||
|
from core.main import *
|
||||||
|
from utils.loaders.single_loader import loadSingle
|
||||||
|
|
||||||
|
class Loadmod:
|
||||||
|
def __init__(self, register):
|
||||||
|
register("loadmod", self.loadmod)
|
||||||
|
|
||||||
|
def loadmod(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
||||||
|
if authed:
|
||||||
|
if length == 2:
|
||||||
|
rtrn = loadSingle(spl[1], register)
|
||||||
|
if rtrn == True:
|
||||||
|
success("Loaded module %s" % spl[1])
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
failure("Error loading module %s: %s" % (spl[1], rtrn))
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
incUsage("loadmod")
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
incUsage(None)
|
||||||
|
return
|
|
@ -15,5 +15,6 @@
|
||||||
"stats": "stats [<name>]",
|
"stats": "stats [<name>]",
|
||||||
"save": "save <config|keyconf|pool|help|wholist|all>",
|
"save": "save <config|keyconf|pool|help|wholist|all>",
|
||||||
"load": "load <config|keyconf|pool|help|wholist|all>",
|
"load": "load <config|keyconf|pool|help|wholist|all>",
|
||||||
"dist": "dist"
|
"dist": "dist",
|
||||||
}
|
"loadmod": "loadmod <module>"
|
||||||
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ def parseCommand(addr, authed, data):
|
||||||
failure("No text was sent")
|
failure("No text was sent")
|
||||||
return
|
return
|
||||||
for i in CommandMap.keys():
|
for i in CommandMap.keys():
|
||||||
if data.startswith(i):
|
if spl[0] == i:
|
||||||
CommandMap[i](addr, authed, data, obj, spl, success, failure, info, incUsage, length)
|
CommandMap[i](addr, authed, data, obj, spl, success, failure, info, incUsage, length)
|
||||||
return
|
return
|
||||||
incUsage(None)
|
incUsage(None)
|
||||||
|
|
|
@ -8,8 +8,8 @@ def loadCommands(func):
|
||||||
if filename.endswith('.py') and filename != "__init__.py":
|
if filename.endswith('.py') and filename != "__init__.py":
|
||||||
commandName = filename[0:-3]
|
commandName = filename[0:-3]
|
||||||
className = commandName.capitalize()
|
className = commandName.capitalize()
|
||||||
#try:
|
try:
|
||||||
__import__('commands.%s' % commandName)
|
__import__('commands.%s' % commandName)
|
||||||
eval('commands.%s.%s(func)' % (commandName, className))
|
eval('commands.%s.%s(func)' % (commandName, className))
|
||||||
#except Exception as err:
|
except Exception as err:
|
||||||
# error("Exception while loading command %s:\n%s" % (commandName, err))
|
error("Exception while loading command %s:\n%s" % (commandName, err))
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
from os import listdir
|
||||||
|
from core.main import *
|
||||||
|
from utils.logging.log import *
|
||||||
|
import commands
|
||||||
|
|
||||||
|
def loadSingle(command, func):
|
||||||
|
if command+".py" in listdir("commands"):
|
||||||
|
try:
|
||||||
|
if command in CommandMap.keys():
|
||||||
|
return "Cannot reload modules"
|
||||||
|
else:
|
||||||
|
className = command.capitalize()
|
||||||
|
__import__("commands.%s" % command)
|
||||||
|
eval("commands.%s.%s(func)" % (command, className))
|
||||||
|
return True
|
||||||
|
except Exception as err:
|
||||||
|
return err
|
Loading…
Reference in New Issue