From c33589b2d38d77d1bb74ec945485ccd919fc936c Mon Sep 17 00:00:00 2001 From: Gabriel Moreira Minossi Date: Mon, 18 Jan 2021 15:36:06 -0300 Subject: [PATCH] Adding workaround for Parser.parseProgress Copying the body of the function to the file where it is called Avoiding weird bug that appears to cause the function not to be called(?) --- Libraries/utils/parser.lua | 24 +++++++++---------- .../data/datasource/multi-block.lua | 10 ++++++++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Libraries/utils/parser.lua b/Libraries/utils/parser.lua index 0ef4c30..96c8fb9 100644 --- a/Libraries/utils/parser.lua +++ b/Libraries/utils/parser.lua @@ -1,16 +1,16 @@ -local Parser = {} +local parser = {} -function Parser.parseProgress(progressString) +function parser.parseProgress(progressString) local current = string.sub(progressString, string.find(progressString, "%ba§")) current = tonumber((string.gsub(string.gsub(current, "a", ""), "§", ""))) - local maximum = string.sub(progressString, string.find(progressString, "%be§")) + local maximum = string.sub(progressString, string.find(progressString, "%be§", (string.find(progressString, "/")))) maximum = tonumber((string.gsub(string.gsub(maximum, "e", ""), "§", ""))) return {current = current, maximum = maximum} end -function Parser.parseStoredEnergy(storedEnergyString) +function parser.parseStoredEnergy(storedEnergyString) local noCommaString = string.gsub(storedEnergyString, ",", "") local current = string.sub(noCommaString, string.find(noCommaString, "%ba§")) @@ -22,40 +22,40 @@ function Parser.parseStoredEnergy(storedEnergyString) return {current = current, maximum = maximum} end -function Parser.parseAverageInput(averageInputString) +function parser.parseAverageInput(averageInputString) local noCommaString = string.gsub(averageInputString, ",", "") return tonumber((string.sub(noCommaString, string.find(noCommaString, "%d+")))) end -function Parser.parseAverageOutput(averageOutputString) +function parser.parseAverageOutput(averageOutputString) local noCommaString = string.gsub(averageOutputString, ",", "") return tonumber((string.sub(noCommaString, string.find(noCommaString, "%d+")))) end -function Parser.parseProblems(problemsString) +function parser.parseProblems(problemsString) local problems = string.sub(problemsString, string.find(problemsString, "c%d")) return tonumber((string.gsub(problems, "c", ""))) end -function Parser.parseEfficiency(efficiencyString) +function parser.parseEfficiency(efficiencyString) local noParagraphMarkString = string.gsub(efficiencyString, "§r", "") local efficiency = string.sub(noParagraphMarkString, string.find(noParagraphMarkString, "%d+%.*%d*%s%%")) return tonumber((string.gsub(efficiency, "%s%%", ""))) end -function Parser.parseName(nameString) +function parser.parseName(nameString) return string.gsub(string.gsub(nameString, "§9", ""), "§r", "") end -function Parser.parseWorkArea(worAreaString) +function parser.parseWorkArea(worAreaString) local size = string.sub(worAreaString, string.find(worAreaString, "§a%d+x%d+§r")) return string.gsub(string.gsub(size, "§a", ""), "§r", "") end -function Parser.parseProbablyUses(probablyUsesString) +function parser.parseProbablyUses(probablyUsesString) local noCommaString = string.gsub(probablyUsesString, ",", "") local estimate = string.sub(noCommaString, string.find(noCommaString, "%bc§")) return tonumber((string.gsub(string.gsub(estimate, "c", ""), "§", ""))) end -return Parser +return parser diff --git a/Programs/monitor-system/data/datasource/multi-block.lua b/Programs/monitor-system/data/datasource/multi-block.lua index bee6ef9..0811884 100755 --- a/Programs/monitor-system/data/datasource/multi-block.lua +++ b/Programs/monitor-system/data/datasource/multi-block.lua @@ -14,6 +14,16 @@ local MultiBlock = } ) +function Parser.parseProgress(progressString) + local current = string.sub(progressString, string.find(progressString, "%ba§")) + current = tonumber((string.gsub(string.gsub(current, "a", ""), "§", ""))) + + local maximum = string.sub(progressString, string.find(progressString, "%be§", (string.find(progressString, "/")))) + maximum = tonumber((string.gsub(string.gsub(maximum, "e", ""), "§", ""))) + + return {current = current, maximum = maximum} +end + function MultiBlock:getNumberOfProblems() local sensorInformation = self:getSensorInformation() return Parser.parseProblems(sensorInformation[5])