コード例 #1
0
ファイル: todo.py プロジェクト: shivani1998cs/ChatBot
def todoHandler(data):
    """
    Handle the command string for todos.
    """
    indices = []
    score = 100
    action = 0
    minArgs = 0
    # Select the best trigger match from the actions list
    for key in actions:
        foundMatch = False
        for trigger in actions[key]['trigger']:
            newScore, indexList = scoreSentence(data, trigger, distancePenalty = 0.5, additionalTargetPenalty = 0, wordMatchPenalty = 0.5)
            if foundMatch and len(indexList) > len(indices):
                # A match for this action was already found.
                # But this trigger matches more words.
                indices = indexList
            if newScore < score:
                if not foundMatch:
                    indices = indexList
                    minArgs = actions[key]['minArgs']
                    foundMatch = True
                score = newScore
                action = key
    if not action:
        return
    data = data.split();
    for i in sorted(indices, reverse=True):
        del data[i]
    if len(data) < minArgs:
        warning("Not enough arguments for specified command {0}".format(action))
        return
    data = " ".join(data)
    globals()[action](data)
コード例 #2
0
    def _check_native(self, values, plugin):
        missing = ""
        for native in values:
            if not executable_exists(native):
                missing += native
                missing += " "

        if len(missing) == 0:
            return True
        else:
            warning("Disabeling {} - missing native executables {}".format(plugin.get_name(), missing))
コード例 #3
0
 def __init__(self):
     # plugin shoud match these requirements
     self._requirement_has_network = True
     if sys.platform == "darwin":
         self._requirement_platform = plugin.MACOS
     elif sys.platform == "win32":
         self._requirement_platform = plugin.WINDOWS
     elif sys.platform.startswith("linux"):
         self._requirement_platform = plugin.LINUX
     else:
         self._requirement_platform = None
         warning("Unsupported platform {}".format(sys.platform))
コード例 #4
0
    def _check_native(self, values, plugin):
        missing = ""
        for native in values:
            if distutils.spawn.find_executable(native) is None:
                missing += native
                missing += " "

        if len(missing) == 0:
            return True
        else:
            warning("Disabeling {} - missing native executables {}".format(
                plugin.get_name(), missing))
コード例 #5
0
    def _plugin_get_requirements(self, requirements_iter):
        plugin_requirements = {"platform": [], "network": [], "native": []}

        # parse requirements
        for requirement in requirements_iter:
            key = requirement[0]
            values = requirement[1]

            if isinstance(values, str) or isinstance(values, bool):
                values = [values]

            if key in plugin_requirements:
                plugin_requirements[key].extend(values)
            else:
                warning("{}={}: No supported requirement".format(key, values))

        return plugin_requirements
コード例 #6
0
ファイル: jarvis.py プロジェクト: erick-dsnk/Jarvis
    def _parse_plugin_features(self, features_iter):
        plugin_features = {"case_sensitive": False, "punctuation": True}

        if features_iter is None:
            return plugin_features

        for feature in features_iter:
            key = feature[0]
            value = feature[1]

            if not isinstance(value, bool):
                warning("{}={}: No supported requirement".format(key, value))

            if key in plugin_features:
                plugin_features[key] = value
            else:
                warning("{}={}: No supported requirement".format(key, value))

        return plugin_features
コード例 #7
0
ファイル: PluginManager.py プロジェクト: jarvisaibot/Jarvis-1
    def _plugin_get_requirements(self, requirements_iter):
        plugin_requirements = {
            "platform": [],
            "python": [],
            "network": [],
            "native": []
        }

        # parse requirements
        for requirement in requirements_iter:
            key = requirement[0]
            values = requirement[1]

            if isinstance(values, str) or isinstance(values, bool):
                values = [values]

            if key in plugin_requirements:
                plugin_requirements[key].extend(values)
            else:
                warning("{}={}: No supportet requirement".format(key, values))

        return plugin_requirements