From fda24f934c5fe344741cff618140f281459f4dfc Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sat, 17 Mar 2018 15:06:36 +0100 Subject: [PATCH] Tested with Olivia running well --- .vs/AACloud/v15/.suo | Bin 88064 -> 84480 bytes Dependencies.js | 8 +++---- Extraction Bot Main Loop.js | 6 ++--- Indicator Bot Main Loop.js | 6 ++--- Project.njsproj | 2 +- Run.js | 46 +++++++++++++++++++++--------------- Status Report.js | 22 +++++++++++++---- 7 files changed, 56 insertions(+), 34 deletions(-) diff --git a/.vs/AACloud/v15/.suo b/.vs/AACloud/v15/.suo index 3b5b7b810b401d77d59e075bfcac283084d8fd8d..6cc63b41b8f4e945effd7262e29a1a068ac5cfdc 100644 GIT binary patch delta 3567 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 onLoad -> Execution finished well. :-)"); + logger.write("[INFO] initialize -> onLoad -> Execution finished well -> bot = " + pDependenciesConfig[i].bot); addReport(); return; @@ -80,7 +80,7 @@ if (err.message === "Status Report was never created.") { logger.write("[ERROR] initialize -> onLoad -> err.message = " + err.message); - logger.write("[ERROR] initialize -> onLoad -> pDependenciesConfig[i] = " + JSON.stringify(pDependenciesConfig[i])); + logger.write("[ERROR] initialize -> onLoad -> Report Not Found. -> bot = " + pDependenciesConfig[i].bot); addReport(); return; } else { diff --git a/Extraction Bot Main Loop.js b/Extraction Bot Main Loop.js index a449645d9..e37f7d5cd 100644 --- a/Extraction Bot Main Loop.js +++ b/Extraction Bot Main Loop.js @@ -45,7 +45,7 @@ } } - function run(callBackFunction) { + function run(pMonth, pYear, callBackFunction) { try { if (FULL_LOG === true) { logger.write("[INFO] run -> Entering function."); } @@ -87,7 +87,7 @@ dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES); - dependencies.initialize(processConfig.dependencies, onInizialized); + dependencies.initialize(processConfig.dependencies, pMonth, pYear, onInizialized); function onInizialized(err) { @@ -118,7 +118,7 @@ usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, FILE_STORAGE, STATUS_REPORT, POLONIEX_CLIENT_MODULE); - usertBot.initialize(dependencies, onInizialized, undefined, undefined); + usertBot.initialize(dependencies, pMonth, pYear, onInizialized); function onInizialized(err) { diff --git a/Indicator Bot Main Loop.js b/Indicator Bot Main Loop.js index 282d4bdf0..56b7b1129 100644 --- a/Indicator Bot Main Loop.js +++ b/Indicator Bot Main Loop.js @@ -45,7 +45,7 @@ } } - function run(callBackFunction) { + function run(pMonth, pYear, callBackFunction) { try { if (FULL_LOG === true) { logger.write("[INFO] run -> Entering function."); } @@ -85,7 +85,7 @@ dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES); - dependencies.initialize(processConfig.dependencies, onInizialized); + dependencies.initialize(processConfig.dependencies, pMonth, pYear, onInizialized); function onInizialized(err) { @@ -116,7 +116,7 @@ usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, FILE_STORAGE); - usertBot.initialize(dependencies, onInizialized, undefined, undefined); + usertBot.initialize(dependencies, pMonth, pYear, onInizialized); function onInizialized(err) { diff --git a/Project.njsproj b/Project.njsproj index 566e4c4e7..0a0aa8aa4 100644 --- a/Project.njsproj +++ b/Project.njsproj @@ -13,7 +13,7 @@ 14.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) Project - Multi-Period-Market + Multi-Period-Daily C:\Program Files\nodejs\node.exe False diff --git a/Run.js b/Run.js index 210c0fb0d..da2b7b5f8 100644 --- a/Run.js +++ b/Run.js @@ -148,6 +148,13 @@ global.FILE_PATH_ROOT = botConfig.devTeam + "/" + botConfig.codeName + "." + bot global.loopCointer = 0; +/* Small Function to fix numbers into strings in a cool way. */ + +function pad(str, max) { + str = str.toString(); + return str.length < max ? pad("0" + str, max) : str; +} + /* Some LAGACY code starts here. Pending for clean up. */ const INTERVAL_EXECUTOR_MODULE = require('./Interval Executor'); @@ -215,24 +222,25 @@ for (let i = 0; i < botConfig.processes.length; i++) { if (processConfig.startMode.noTime.run === "true") { - startProcess(); - function startProcess() { - switch (bot.type) { - case 'Extraction': { - runExtractionBot(processConfig); - return; - } - case 'Indicator': { - runIndicatorBot(processConfig); - return; - } - case 'Trading': { - runTradingBot(processConfig); - return; - } + let month = pad((new Date()).getUTCMonth() + 1, 2); + let year = (new Date()).getUTCFullYear(); + + switch (bot.type) { + case 'Extraction': { + runExtractionBot(processConfig, month, year); + return; + } + case 'Indicator': { + runIndicatorBot(processConfig, month, year); + return; + } + case 'Trading': { + runTradingBot(processConfig); + return; } } + } } catch (err) { @@ -242,7 +250,7 @@ for (let i = 0; i < botConfig.processes.length; i++) { } } -function runExtractionBot(pProcessConfig) { +function runExtractionBot(pProcessConfig, pMonth, pYear) { try { if (FULL_LOG === true) { logger.write("[INFO] runExtractionBot -> Entering function."); } @@ -254,7 +262,7 @@ function runExtractionBot(pProcessConfig) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { - extractionBotMainLoop.run(whenRunFinishes); + extractionBotMainLoop.run(pMonth, pYear, whenRunFinishes); function whenRunFinishes(err) { @@ -282,7 +290,7 @@ function runExtractionBot(pProcessConfig) { } } -function runIndicatorBot(pProcessConfig) { +function runIndicatorBot(pProcessConfig, pMonth, pYear) { try { if (FULL_LOG === true) { logger.write("[INFO] runIndicatorBot -> Entering function."); } @@ -294,7 +302,7 @@ function runIndicatorBot(pProcessConfig) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { - indicatorBotMainLoop.run(whenRunFinishes); + indicatorBotMainLoop.run(pMonth, pYear, whenRunFinishes); function whenRunFinishes(err) { diff --git a/Status Report.js b/Status Report.js index 7868fe353..2d2c37fc5 100644 --- a/Status Report.js +++ b/Status Report.js @@ -35,17 +35,31 @@ let cloudStorage = FILE_STORAGE.newFileStorage(bot); + let month; + let year; + let timePath = ''; + return thisObject; - function initialize(pOwner, callBackFunction) { + function initialize(pOwner, pMonth, pYear, callBackFunction) { try { logger.fileName = MODULE_NAME + "." + pOwner.bot; + owner = pOwner; + month = pMonth; + year = pYear; + + if (owner.dataSetSection === "Month") { + + logger.fileName = MODULE_NAME + "." + pOwner.bot + "." + year + "." + month; + + timePath = "/" + year + "/" + month; + } + if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - owner = pOwner; initializeStorage(); @@ -80,7 +94,7 @@ let rootPath = owner.devTeam + "/" + owner.bot + "." + owner.botVersion.major + "." + owner.botVersion.minor + "/" + global.PLATFORM_CONFIG.codeName + "." + global.PLATFORM_CONFIG.version.major + "." + global.PLATFORM_CONFIG.version.minor + "/" + global.EXCHANGE_NAME + "/" + owner.dataSetVersion; let fileName = "Status.Report.json" - let filePath = rootPath + "/Reports/" + owner.process; + let filePath = rootPath + "/Reports/" + owner.process + timePath; if (FULL_LOG === true) { logger.write("[INFO] initialize -> load -> fileName = " + fileName); } if (FULL_LOG === true) { logger.write("[INFO] initialize -> load -> filePath = " + filePath); } @@ -159,7 +173,7 @@ } let fileName = "Status.Report.json" - let filePath = global.FILE_PATH_ROOT + "/Reports/" + owner.process; + let filePath = global.FILE_PATH_ROOT + "/Reports/" + owner.process + timePath; if (FULL_LOG === true) { logger.write("[INFO] save -> fileName = " + fileName); } if (FULL_LOG === true) { logger.write("[INFO] save -> filePath = " + filePath); }