75 lines
1.4 KiB
Python
75 lines
1.4 KiB
Python
# Basic plugin class
|
|
|
|
__author__="bjschuma"
|
|
__date__ ="$Jan 22, 2010 12:14:01 AM$"
|
|
|
|
|
|
from bt.message import write
|
|
from bt import plugin
|
|
from session import manager
|
|
|
|
|
|
class Plugin(plugin.Plugin):
|
|
def __init__(self):
|
|
plugin.Plugin.__init__(self)
|
|
self.help = "Enable, disable, or reload plugins"
|
|
self.usage = "plugins [enable, disable, reload, list]"
|
|
|
|
|
|
def list(self,args):
|
|
usage = "Usage: plugins list [enabled, disabled]"
|
|
if len(args) == 0:
|
|
write(usage)
|
|
return
|
|
|
|
if args[0] == "enabled":
|
|
enabled = True
|
|
elif args[0] == "disabled":
|
|
enabled = False
|
|
else:
|
|
write(usage)
|
|
return
|
|
|
|
if enabled == True:
|
|
list = manager.enabled.keys()
|
|
type = "Enabled"
|
|
else:
|
|
list = manager.disabled.keys()
|
|
type = "Disabled"
|
|
|
|
if len(list) == 0:
|
|
write("Nothing to list")
|
|
return []
|
|
|
|
write(type + " plugins")
|
|
write("----------------")
|
|
join = ", "
|
|
joined = join.join(list)
|
|
write(joined)
|
|
return list
|
|
|
|
|
|
|
|
def run(self, args=None):
|
|
if args == None:
|
|
write("Usage: " + self.usage)
|
|
return
|
|
|
|
if args[0] == "enable":
|
|
func = manager.enablePlugin
|
|
elif args[0] == "disable":
|
|
if ("plugins" in args)==True:
|
|
return
|
|
func = manager.disablePlugin
|
|
elif args[0] == "reload":
|
|
func = manager.reloadPlugin
|
|
elif args[0] == "list":
|
|
return self.list(args[1:])
|
|
else:
|
|
write("Usage: " + self.usage)
|
|
return
|
|
|
|
for plugin in args[1:]:
|
|
func(plugin)
|
|
|