Module:Testing
From RuneTails
Documentation for this module may be created at Module:Testing/doc
local p = {}
function p.getItemData(frame)
local itemName = frame.args[1] or mw.title.getCurrentTitle().text
local result = mw.ext.getDbData({
db = "WikiDB",
from = "Items",
where = "ItemName = ?",
values = {itemName},
data = {
dbItemRarityName = "ItemRarityName",
dbItemTypeName = "ItemTypeName",
dbDescr = "Descr",
dbSpriteURL = "SpriteURL",
dbIngredientTypeName = "IngredientTypeName",
dbMinPointsSell = "MinPointsSell",
dbHP = "HP",
dbHunger = "Hunger"
}
})
if not result or #result == 0 then
return "No data found for " .. itemName
end
local item = result[1]
-- Set values to global frame storage so templates can access them
frame:extensionTag("var", {name = "dbItemRarityName", value = item.dbItemRarityName or ""})
frame:extensionTag("var", {name = "dbItemTypeName", value = item.dbItemTypeName or ""})
frame:extensionTag("var", {name = "dbDescr", value = item.dbDescr or ""})
frame:extensionTag("var", {name = "dbSpriteURL", value = item.dbSpriteURL or ""})
frame:extensionTag("var", {name = "dbIngredientTypeName", value = item.dbIngredientTypeName or ""})
frame:extensionTag("var", {name = "dbMinPointsSell", value = item.dbMinPointsSell or ""})
frame:extensionTag("var", {name = "dbHP", value = p.formatStat(item.dbHP)})
frame:extensionTag("var", {name = "dbHunger", value = p.formatStat(item.dbHunger, true)})
return ""
end
function p.formatStat(value, isPercentage)
if not value or tonumber(value) == 0 then
return isPercentage and "0%" or "0"
end
local num = tonumber(value)
if num > 0 then
return isPercentage and ("+" .. num .. "%") or ("+" .. num)
else
return isPercentage and (num .. "%") or tostring(num)
end
end
return p