From 963cb5c4aaa23faf970bf9e6e96a4a10acc8d63b Mon Sep 17 00:00:00 2001 From: Felipe Duerno <felipeduernoal@gmail.com> Date: Fri, 23 Mar 2018 12:08:25 -0300 Subject: [PATCH] fix error when trying to put folders inside the training data folder --- Dockerfile | 1 + docker-compose.yml | 1 + scripts/lib/common.coffee | 18 ++++++++++++------ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index ed7f306..5a33825 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,7 @@ LABEL mantainer "Diego Dorgam <diego.dorgam@rocket.chat>" ENV HUBOT_LANG='en' \ HUBOT_CORPUS='training_data/corpus.yml' \ + HUBOT_RECURSIVE_TRAINING=false \ HUBOT_ADAPTER=rocketchat \ HUBOT_OWNER=RocketChat \ HUBOT_NAME=HubotNatural \ diff --git a/docker-compose.yml b/docker-compose.yml index afaa03e..6989eaf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,6 +51,7 @@ services: - HUBOT_DESCRIPTION='Hubot natural language processing' - HUBOT_LOG_LEVEL=debug - HUBOT_CORPUS=training_data/corpus.yml + - HUBOT_RECURSIVE_TRAINING=false - HUBOT_LANG=pt - RESPOND_TO_DM=true - RESPOND_TO_LIVECHAT=true diff --git a/scripts/lib/common.coffee b/scripts/lib/common.coffee index 1305123..f2b6ebb 100644 --- a/scripts/lib/common.coffee +++ b/scripts/lib/common.coffee @@ -25,13 +25,18 @@ common.stringElseRandomKey = (variable) -> if variable instanceof Array variable[Math.floor(Math.random() * variable.length)] -getYAMLFiles = (filepath) -> +getYAMLFiles = (filepath, recursive = false) -> listFile = fs.readdirSync filepath + dataFiles = [] - if listFile.length > 0 - dataFiles = listFile.map (filename) -> - return yaml.safeLoad fs.readFileSync filepath + '/' + filename, 'utf8' - else + for filename in listFile + file = filepath + '/' + filename + if fs.lstatSync(file).isFile() + dataFiles.push(yaml.safeLoad fs.readFileSync file, 'utf8') + else if recursive + dataFiles = dataFiles.concat(getYAMLFiles file, recursive) + + if dataFiles.lenght is 0 console.error('The directory: ' + filepath + ' is empty.') return dataFiles @@ -61,7 +66,8 @@ common.loadConfigfile = (filepath) -> return yaml.safeLoad fs.readFileSync filepath, 'utf8' else if fs.lstatSync(filepath).isDirectory() - yamlFiles = getYAMLFiles(filepath) + recursiveTraining = process.env.HUBOT_RECURSIVE_TRAINING || false + yamlFiles = getYAMLFiles(filepath, recursiveTraining) return concatYAMLFiles(yamlFiles) catch err -- GitLab