예제 #1
0
파일: load.py 프로젝트: JoshDreamland/xbot
 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]
예제 #2
0
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:''})
예제 #3
0
from plugins import plugin
예제 #4
0
# -*- coding: utf-8 -*-
예제 #5
0
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: ''})