def action(self, complete): name=complete.message().split()[0] loadAs="" if len(complete.message().split())==3: loadAs = complete.message().split()[2] loadBlacklist=["special"] if name.lower() in loadBlacklist and isAllowed(complete.userMask())<150: return ["PRIVMSG $C$ :Owner only plugin!"] if isAllowed(complete.userMask())<getLevel(complete.cmd()[0]): return ["PRIVMSG $C$ :Sorry, only elevated users can load plugins!"] if name in globalv.loadedAliases.keys(): try: extension=globalv.loadedAliases[name] unload_plugin(name) pluginName=extension.split()[0] x=__import__(pluginName) reload(x) globalv.loadedPlugins[pluginName]=x.pluginClass() load_alias(name, extension) msg="Reloaded alias "+name+" successfully!" except Exception as detail: msg="Load failure: "+str(detail) else: try: state=load_plugin(name, loadAs) msg="oaded "+name+" successfully!" msg="L"+msg if state==0 else "Rel"+msg except Exception as detail: msg="Load failure: "+str(detail) if complete.message().split()[1:]==["silently"]: return [""] else: return ["PRIVMSG $C$ :"+msg]
def load_alias(name, plugin): #Loads an alias try: if plugin.split()[0] in globalv.loadedPlugins: if plugin.split()[0] in globalv.aliasExtensions: argumentsObject = pluginArguments(":nothing!nobody@nowhere PRIVMSG #NARChannel :%s%s"%(globalv.commandCharacter, plugin)) argumentsObject = formatInput(argumentsObject, globalv.aliasExtensions, False) plugin = argumentsObject.fullMessage()[len(globalv.commandCharacter):] print plugin globalv.loadedPlugins.update({name:globalv.loadedPlugins[plugin.split()[0]]}) if settingsHandler.tableExists(name)==0: globalv.loadedPlugins[plugin.split()[0]].__init_db_tables__(name) if name not in [x[0] for x in settingsHandler.readSetting("'core-userlevels'", "plugin")]: settingsHandler.writeSetting("'core-userlevels'", ["plugin", "level"],[name, str(globalv.loadedPlugins[plugin.split()[0]].__level__())]) else: #If the aliases dependancy isn't loaded, load it, then get rid of it afterwards. load_plugin(plugin.split()[0]) globalv.loadedPlugins.update({name:globalv.loadedPlugins[plugin.split()[0]]}) if settingsHandler.tableExists(name)==0: globalv.loadedPlugins[plugin.split()[0]].__init_db_tables__(name) if name not in [x[0] for x in settingsHandler.readSetting("'core-userlevels'", "plugin")]: settingsHandler.writeSetting("'core-userlevels'", ["plugin", "level"],[name, str(globalv.loadedPlugins[plugin.split()[0]].__level__())]) unload_plugin(plugin.split()[0]) globalv.loadedAliases.update({name:plugin}) globalv.basePlugin[name] = plugin.split()[0] except Exception as detail: print detail try: message("Function syntax: "+globalv.commandCharacter+"alias [word] [command] [arguments]",info[2]) except: print "Plugin",name,"failed to load" try: print "Adding Extensions" print plugin globalv.aliasExtensions.update({name:" "+' '.join(plugin.split()[1:])}) except: globalv.aliasExtensions.update({name:''}) if globalv.aliasExtensions[plugin.split()[0]]!="": try: #globalv.aliasExtensions.update({name:globalv.aliasExtensions[plugin.split()[0]]}) print "Would have broken here" except: globalv.aliasExtensions.update({name:''})
def action(self, complete): msg=complete.message() name=msg.split()[0] if isAllowed(complete.userMask())<getLevel(complete.cmd()[0]): return ["PRIVMSG $C$ :Sorry, only elevated users can do that!"] if name=="load" and complete[0].split()[0].split('!')[0]!=readSetting("core","username"): return ["PRIVMSG $C$ :Silly bugger, that would break the world!"] success=unload_plugin(name) if name in globalv.loadedAliases.keys(): del globalv.loadedAliases[name] if msg.split()[1:]==['silently']: return [""] if success: return ["PRIVMSG $C$ :Unload successful!"] else: return ["PRIVMSG $C$ :Plugin is not loaded!"]
def action(self, complete): msg = complete.message() name = msg.split()[0] if isAllowed(complete.userMask()) < getLevel(complete.cmd()[0]): return ["PRIVMSG $C$ :Sorry, only elevated users can do that!"] if name == "load" and complete[0].split()[0].split( '!')[0] != readSetting("core", "username"): return ["PRIVMSG $C$ :Silly bugger, that would break the world!"] success = unload_plugin(name) if name in globalv.loadedAliases.keys(): del globalv.loadedAliases[name] if msg.split()[1:] == ['silently']: return [""] if success: return ["PRIVMSG $C$ :Unload successful!"] else: return ["PRIVMSG $C$ :Plugin is not loaded!"]
def load_alias(name, plugin): #Loads an alias try: if plugin.split()[0] in globalv.loadedPlugins: if plugin.split()[0] in globalv.aliasExtensions: argumentsObject = pluginArguments( ":nothing!nobody@nowhere PRIVMSG #NARChannel :%s%s" % (globalv.commandCharacter, plugin)) argumentsObject = formatInput(argumentsObject, globalv.aliasExtensions, False) plugin = argumentsObject.fullMessage()[len(globalv. commandCharacter):] print plugin globalv.loadedPlugins.update( {name: globalv.loadedPlugins[plugin.split()[0]]}) if settingsHandler.tableExists(name) == 0: globalv.loadedPlugins[plugin.split()[0]].__init_db_tables__( name) if name not in [ x[0] for x in settingsHandler.readSetting( "'core-userlevels'", "plugin") ]: settingsHandler.writeSetting("'core-userlevels'", [ "plugin", "level" ], [ name, str(globalv.loadedPlugins[plugin.split()[0]].__level__()) ]) else: #If the aliases dependancy isn't loaded, load it, then get rid of it afterwards. load_plugin(plugin.split()[0]) globalv.loadedPlugins.update( {name: globalv.loadedPlugins[plugin.split()[0]]}) if settingsHandler.tableExists(name) == 0: globalv.loadedPlugins[plugin.split()[0]].__init_db_tables__( name) if name not in [ x[0] for x in settingsHandler.readSetting( "'core-userlevels'", "plugin") ]: settingsHandler.writeSetting("'core-userlevels'", [ "plugin", "level" ], [ name, str(globalv.loadedPlugins[plugin.split()[0]].__level__()) ]) unload_plugin(plugin.split()[0]) globalv.loadedAliases.update({name: plugin}) globalv.basePlugin[name] = plugin.split()[0] except Exception as detail: print detail try: message( "Function syntax: " + globalv.commandCharacter + "alias [word] [command] [arguments]", info[2]) except: print "Plugin", name, "failed to load" try: print "Adding Extensions" print plugin globalv.aliasExtensions.update( {name: " " + ' '.join(plugin.split()[1:])}) except: globalv.aliasExtensions.update({name: ''}) if globalv.aliasExtensions[plugin.split()[0]] != "": try: #globalv.aliasExtensions.update({name:globalv.aliasExtensions[plugin.split()[0]]}) print "Would have broken here" except: globalv.aliasExtensions.update({name: ''})