From 21e2e651a219ded1b07c631c2c5aa38d28999169 Mon Sep 17 00:00:00 2001 From: Sabine Lim Date: Tue, 16 May 2023 19:44:15 +1000 Subject: [PATCH] Move xmlValue to xmlParser --- Basalt/libraries/utils.lua | 22 ---------------------- Basalt/libraries/xmlParser.lua | 22 ++++++++++++++++++++++ Basalt/plugins/advancedBackground.lua | 5 ++--- Basalt/plugins/animations.lua | 9 ++++----- Basalt/plugins/bigfonts.lua | 5 ++--- Basalt/plugins/border.lua | 21 ++++++++++----------- Basalt/plugins/dynamicValues.lua | 1 - Basalt/plugins/reactive.lua | 19 +++++++++---------- Basalt/plugins/shadow.lua | 5 ++--- Basalt/plugins/textures.lua | 8 ++++---- 10 files changed, 55 insertions(+), 62 deletions(-) diff --git a/Basalt/libraries/utils.lua b/Basalt/libraries/utils.lua index 4fc0812..f76e26a 100644 --- a/Basalt/libraries/utils.lua +++ b/Basalt/libraries/utils.lua @@ -273,28 +273,6 @@ removeTags = removeTags, wrapText = wrapText, -xmlValue = function(name, tab) - local var - if(type(tab)~="table")then return end - if(tab[name]~=nil)then - if(type(tab[name])=="table")then - if(tab[name].value~=nil)then - var = tab[name]:value() - end - end - end - if(var==nil)then var = tab["@"..name] end - - if(var=="true")then - var = true - elseif(var=="false")then - var = false - elseif(tonumber(var)~=nil)then - var = tonumber(var) - end - return var -end, - convertRichText = convertRichText, --- Writes text with special color tags diff --git a/Basalt/libraries/xmlParser.lua b/Basalt/libraries/xmlParser.lua index f76b835..2df5ca5 100644 --- a/Basalt/libraries/xmlParser.lua +++ b/Basalt/libraries/xmlParser.lua @@ -55,6 +55,28 @@ end local XMLParser = {} +function XMLParser.XmlValue(name, tab) + local var + if(type(tab)~="table")then return end + if(tab[name]~=nil)then + if(type(tab[name])=="table")then + if(tab[name].value~=nil)then + var = tab[name]:value() + end + end + end + if(var==nil)then var = tab["@"..name] end + + if(var=="true")then + var = true + elseif(var=="false")then + var = false + elseif(tonumber(var)~=nil)then + var = tonumber(var) + end + return var +end + function XMLParser:ToXmlString(value) value = string.gsub(value, "&", "&"); -- '&' -> "&" value = string.gsub(value, "<", "<"); -- '<' -> "<" diff --git a/Basalt/plugins/advancedBackground.lua b/Basalt/plugins/advancedBackground.lua index 022d78d..33e74ff 100644 --- a/Basalt/plugins/advancedBackground.lua +++ b/Basalt/plugins/advancedBackground.lua @@ -1,5 +1,4 @@ -local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { VisualObject = function(base) @@ -31,7 +30,7 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data, scripts) - if(xmlValue("background-symbol", data)~=nil)then self:setBackgroundSymbol(xmlValue("background-symbol", data), xmlValue("background-symbol-color", data)) end + if(XMLParser.XmlValue("background-symbol", data)~=nil)then self:setBackgroundSymbol(XMLParser.XmlValue("background-symbol", data), XMLParser.XmlValue("background-symbol-color", data)) end return self end, diff --git a/Basalt/plugins/animations.lua b/Basalt/plugins/animations.lua index ca84ab3..36f41de 100644 --- a/Basalt/plugins/animations.lua +++ b/Basalt/plugins/animations.lua @@ -215,8 +215,7 @@ local lerp = { easeInOutBounce=easeInOutBounce, } -local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { VisualObject = function(base, basalt) @@ -341,9 +340,9 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data, scripts) - local animX, animY, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateX", data), xmlValue("animateY", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data) - local animW, animH, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateW", data), xmlValue("animateH", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data) - local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateXOffset", data), xmlValue("animateYOffset", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data) + local animX, animY, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateX", data), XMLParser.XmlValue("animateY", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data) + local animW, animH, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateW", data), XMLParser.XmlValue("animateH", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data) + local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateXOffset", data), XMLParser.XmlValue("animateYOffset", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data) if(animX~=nil and animY~=nil)then self:animatePosition(animX, animY, animateDuration, animeteTimeOffset, animateMode) end diff --git a/Basalt/plugins/bigfonts.lua b/Basalt/plugins/bigfonts.lua index 9d29bbb..b4ae4ee 100644 --- a/Basalt/plugins/bigfonts.lua +++ b/Basalt/plugins/bigfonts.lua @@ -140,8 +140,7 @@ local function makeText(nSize, sString, nFC, nBC, bBlit) end -- The following code is related to basalt and has nothing to do with bigfonts, it creates a plugin which will be added to labels: -local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { Label = function(base) local fontsize = 1 @@ -198,7 +197,7 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data, scripts) - if(xmlValue("fontSize", data)~=nil)then self:setFontSize(xmlValue("fontSize", data)) end + if(XMLParser.XmlValue("fontSize", data)~=nil)then self:setFontSize(XMLParser.XmlValue("fontSize", data)) end return self end, diff --git a/Basalt/plugins/border.lua b/Basalt/plugins/border.lua index 6c00d5c..639ca89 100644 --- a/Basalt/plugins/border.lua +++ b/Basalt/plugins/border.lua @@ -1,5 +1,4 @@ -local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { VisualObject = function(base) @@ -85,16 +84,16 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data) local borders = {} - if(xmlValue("border", data)~=nil)then - borders["top"] = colors[xmlValue("border", data)] - borders["bottom"] = colors[xmlValue("border", data)] - borders["left"] = colors[xmlValue("border", data)] - borders["right"] = colors[xmlValue("border", data)] + if(XMLParser.XmlValue("border", data)~=nil)then + borders["top"] = colors[XMLParser.XmlValue("border", data)] + borders["bottom"] = colors[XMLParser.XmlValue("border", data)] + borders["left"] = colors[XMLParser.XmlValue("border", data)] + borders["right"] = colors[XMLParser.XmlValue("border", data)] end - if(xmlValue("borderTop", data)~=nil)then borders["top"] = colors[xmlValue("borderTop", data)] end - if(xmlValue("borderBottom", data)~=nil)then borders["bottom"] = colors[xmlValue("borderBottom", data)] end - if(xmlValue("borderLeft", data)~=nil)then borders["left"] = colors[xmlValue("borderLeft", data)] end - if(xmlValue("borderRight", data)~=nil)then borders["right"] = colors[xmlValue("borderRight", data)] end + if(XMLParser.XmlValue("borderTop", data)~=nil)then borders["top"] = colors[XMLParser.XmlValue("borderTop", data)] end + if(XMLParser.XmlValue("borderBottom", data)~=nil)then borders["bottom"] = colors[XMLParser.XmlValue("borderBottom", data)] end + if(XMLParser.XmlValue("borderLeft", data)~=nil)then borders["left"] = colors[XMLParser.XmlValue("borderLeft", data)] end + if(XMLParser.XmlValue("borderRight", data)~=nil)then borders["right"] = colors[XMLParser.XmlValue("borderRight", data)] end self:setBorder(borders["top"], borders["bottom"], borders["left"], borders["right"]) return self end diff --git a/Basalt/plugins/dynamicValues.lua b/Basalt/plugins/dynamicValues.lua index 7c58315..4e9e9c6 100644 --- a/Basalt/plugins/dynamicValues.lua +++ b/Basalt/plugins/dynamicValues.lua @@ -1,6 +1,5 @@ local utils = require("utils") local count = utils.tableCount -local xmlValue = utils.xmlValue return { VisualObject = function(base, basalt) diff --git a/Basalt/plugins/reactive.lua b/Basalt/plugins/reactive.lua index 1d1562d..83d02a0 100644 --- a/Basalt/plugins/reactive.lua +++ b/Basalt/plugins/reactive.lua @@ -1,10 +1,9 @@ local XMLParser = require("xmlParser") local utils = require("utils") local uuid = utils.uuid -local xmlValue = utils.xmlValue local function maybeExecuteScript(data, renderContext) - local script = xmlValue('script', data) + local script = XMLParser.XmlValue('script', data) if (script ~= nil) then load(script, nil, "t", renderContext.env)() end @@ -286,8 +285,8 @@ return { if(data["rules"]["rule"].properties~=nil)then tab = {data["rules"]["rule"]} end for k,v in pairs(tab)do - if(xmlValue("pattern", v)~=nil)then - self:addRule(xmlValue("pattern", v), colors[xmlValue("fg", v)], colors[xmlValue("bg", v)]) + if(XMLParser.XmlValue("pattern", v)~=nil)then + self:addRule(XMLParser.XmlValue("pattern", v), colors[XMLParser.XmlValue("fg", v)], colors[XMLParser.XmlValue("bg", v)]) end end end @@ -301,7 +300,7 @@ return { Thread = function(base, basalt) local object = { setValuesByXMLData = function(self, data, renderContext) - local script = xmlValue("start", data)~=nil + local script = XMLParser.XmlValue("start", data)~=nil if(script~=nil)then local f = load(script, nil, "t", renderContext.env) self:start(f) @@ -334,7 +333,7 @@ return { if(tab.properties~=nil)then tab = {tab} end for _,v in pairs(tab)do if(self:getType()~="Radio")then - self:addItem(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)]) + self:addItem(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)]) end end end @@ -362,7 +361,7 @@ return { local tab = data["item"] if(tab.properties~=nil)then tab = {tab} end for _,v in pairs(tab)do - self:addItem(xmlValue("text", v), xmlValue("x", v), xmlValue("y", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)]) + self:addItem(XMLParser.XmlValue("text", v), XMLParser.XmlValue("x", v), XMLParser.XmlValue("y", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)]) end end return self @@ -379,7 +378,7 @@ return { local tab = data["item"] if(tab.properties~=nil)then tab = {tab} end for _,_ in pairs(tab)do - self:addDataPoint(xmlValue("value")) + self:addDataPoint(XMLParser.XmlValue("value")) end end return self @@ -397,7 +396,7 @@ return { local tab = data["node"] if(tab.properties~=nil)then tab = {tab} end for _,v in pairs(tab)do - local n = node:addNode(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)]) + local n = node:addNode(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)]) addNode(n, v) end end @@ -406,7 +405,7 @@ return { local tab = data["node"] if(tab.properties~=nil)then tab = {tab} end for _,v in pairs(tab)do - local n = self:addNode(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)]) + local n = self:addNode(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)]) addNode(n, v) end end diff --git a/Basalt/plugins/shadow.lua b/Basalt/plugins/shadow.lua index c53c188..496bbbd 100644 --- a/Basalt/plugins/shadow.lua +++ b/Basalt/plugins/shadow.lua @@ -1,5 +1,4 @@ -local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { VisualObject = function(base) @@ -33,7 +32,7 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data, scripts) - if(xmlValue("shadow", data)~=nil)then self:setShadow(xmlValue("shadow", data)) end + if(XMLParser.XmlValue("shadow", data)~=nil)then self:setShadow(XMLParser.XmlValue("shadow", data)) end return self end } diff --git a/Basalt/plugins/textures.lua b/Basalt/plugins/textures.lua index 2cc40ba..e2790ab 100644 --- a/Basalt/plugins/textures.lua +++ b/Basalt/plugins/textures.lua @@ -1,6 +1,6 @@ local images = require("images") local utils = require("utils") -local xmlValue = utils.xmlValue +local XMLParser = require("xmlParser") return { VisualObject = function(base) local textureId, infinitePlay = 1, true @@ -111,9 +111,9 @@ return { setValuesByXMLData = function(self, data, scripts) base.setValuesByXMLData(self, data, scripts) - if(xmlValue("texture", data)~=nil)then self:addTexture(xmlValue("texture", data), xmlValue("animate", data)) end - if(xmlValue("textureMode", data)~=nil)then self:setTextureMode(xmlValue("textureMode", data)) end - if(xmlValue("infinitePlay", data)~=nil)then self:setInfinitePlay(xmlValue("infinitePlay", data)) end + if(XMLParser.XmlValue("texture", data)~=nil)then self:addTexture(XMLParser.XmlValue("texture", data), XMLParser.XmlValue("animate", data)) end + if(XMLParser.XmlValue("textureMode", data)~=nil)then self:setTextureMode(XMLParser.XmlValue("textureMode", data)) end + if(XMLParser.XmlValue("infinitePlay", data)~=nil)then self:setInfinitePlay(XMLParser.XmlValue("infinitePlay", data)) end return self end }