Módulo:Price

De Wiki Gla
Revisão de 14h38min de 17 de junho de 2025 por Gurren1 (discussão | contribs) (Criou página com 'local p = {} local itemData = require("Módulo:ItemData") local function formatNumber(num) num = tonumber(num) or 0 if num >= 1e9 then return string.format("%.0f", nu...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:Price/doc

local p = {}
local itemData = require("Módulo:ItemData")

local function formatNumber(num)
    num = tonumber(num) or 0
    if num >= 1e9 then return string.format("%.0f", num / 1e6) .. "KKK"
    elseif num >= 1e6 then return string.format("%.0f", num / 1e6) .. "KK"
    elseif num >= 1e4 then return string.format("%.0f", num / 1e3) .. "K"
    else return tostring(num):reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") end
end

local function buscarChaveCorreta(nome)
    local base = mw.text.trim(nome):lower():gsub("_", " "):gsub("%.png$", "")
    for chave, dados in pairs(itemData) do
        local kbase = chave:lower():gsub("_", " "):gsub("%.png$", "")
        local nomeTraduzido = (dados.nome or ""):lower()
        if kbase == base or nomeTraduzido == base then
            return chave, dados
        end
    end
    return nome .. ".png", { nome = nome }
end

function p.render(frame)
    local args = frame.args
    local nome = args[1] or ""
    local qtd = tonumber(args.qtd or 1)

    local chave, dados = buscarChaveCorreta(nome)
    local tooltip = dados.nome or nome
    if dados.desc and dados.desc ~= "" then
        tooltip = tooltip .. "\n—\n" .. dados.desc
    end

    local span = mw.html.create("span")
    span:addClass("item-price-inline")
    span:attr("data-sort-value", qtd)
    span:attr("data-tooltip", tooltip)

    span:tag("span")
        :wikitext(string.format("[[Arquivo:%s|20px|link=]]", chave))

    span:tag("span")
        :addClass("item-count-inline")
        :wikitext("x" .. formatNumber(qtd))

    return tostring(span)
end

return p