예제 #1
0
    def status(self, mess, args):
        """ If I am alive I should be able to respond to this one
        """
        all_blacklisted = holder.bot.get_blacklisted_plugin()
        all_loaded = get_all_active_plugin_names()
        all_attempted = sorted([p.name for p in holder.bot.all_candidates])
        plugins_statuses = []
        for name in all_attempted:
            if name in all_blacklisted:
                if name in all_loaded:
                    plugins_statuses.append(('BL', get_plugin_by_name(name).category, name))
                else:
                    plugins_statuses.append(('BU', name))
            elif name in all_loaded:
                plugins_statuses.append(('L', get_plugin_by_name(name).category, name))
            elif get_plugin_obj_by_name(name) is not None:
                plugins_statuses.append(('C', get_plugin_by_name(name).category, name))
            else:
                plugins_statuses.append(('U', name))

        #noinspection PyBroadException
        try:
            from posix import getloadavg

            loads = getloadavg()
        except Exception as _:
            loads = None

        # plugins_statuses = sorted(plugins_statuses, key=lambda c: c[2])
        return {'plugins': plugins_statuses, 'loads': loads, 'gc': gc.get_count()}
예제 #2
0
파일: bot.py 프로젝트: luokeychen/TomBot
 def activate_plugin(self, name):
     try:
         if name in get_all_active_plugin_names():
             return "Plugin already in active list"
         if name not in get_all_plugin_names():
             return "I don't know this %s plugin" % name
         activate_plugin_by_name(name)
     except Exception as e:
         logger.exception("Error loading %s" % name)
         return '%s failed to start : %s\n' % (name, e)
     get_plugin_obj_by_name(name).callback_connect()
     return "Plugin %s activated" % name
예제 #3
0
 def activate_plugin(self, name):
     try:
         if name in get_all_active_plugin_names():
             return "Plugin already in active list"
         if name not in get_all_plugin_names():
             return "I don't know this %s plugin" % name
         activate_plugin_by_name(name)
     except Exception as e:
         logger.exception("Error loading %s" % name)
         return '%s failed to start : %s\n' % (name, e)
     get_plugin_obj_by_name(name).callback_connect()
     return "Plugin %s activated" % name
예제 #4
0
    def unload(self, mess, args):
        """unload a plugin"""
        args = args.strip()
        if not args:
            return ("Please tell me which of the following plugin to reload:\n"
                    "{}".format(holder.bot.formatted_plugin_list(active_only=False)))
        if args not in get_all_plugin_names():
            return ("{} isn't a valid plugin names. The current plugin are:\n"
                    "{}".format(args, holder.bot.formatted_plugin_list(active_only=False)))
        if args not in get_all_active_plugin_names():
            return "{} is not currently loaded".format(args)

        return holder.bot.deactivate_plugin(args)
예제 #5
0
파일: bot.py 프로젝트: luokeychen/TomBot
    def formatted_plugin_list(active_only=True):
        """
        Return a formatted, plain-text list of loaded plugins.

        When active_only=True, this will only return plugins which
        are actually active. Otherwise, it will also include inactive
        (blacklisted) plugins.
        """
        if active_only:
            all_plugins = get_all_active_plugin_names()
        else:
            all_plugins = get_all_plugin_names()
        return "\n".join(("- " + plugin for plugin in all_plugins))
예제 #6
0
    def formatted_plugin_list(active_only=True):
        """
        Return a formatted, plain-text list of loaded plugins.

        When active_only=True, this will only return plugins which
        are actually active. Otherwise, it will also include inactive
        (blacklisted) plugins.
        """
        if active_only:
            all_plugins = get_all_active_plugin_names()
        else:
            all_plugins = get_all_plugin_names()
        return "\n".join(("- " + plugin for plugin in all_plugins))
예제 #7
0
파일: bot.py 프로젝트: luokeychen/TomBot
 def deactivate_plugin(self, name):
     if name not in get_all_active_plugin_names():
         return "Plugin %s not in active list" % name
     deactivate_plugin_by_name(name)
     return "Plugin %s deactivated" % name
예제 #8
0
 def deactivate_plugin(self, name):
     if name not in get_all_active_plugin_names():
         return "Plugin %s not in active list" % name
     deactivate_plugin_by_name(name)
     return "Plugin %s deactivated" % name