Changes

MyWikiBiz, Author Your Legacy — Saturday September 28, 2024
Jump to navigationJump to search
1,036 bytes added ,  07:50, 16 July 2021
Pywikibot 6.4.0
local getArgs = require('Module:Arguments').getArgs
local p = {}

local function rgb(color)
local _, _, R, G, B = color:find('(%w%w)(%w%w)(%w%w)')

return tonumber(R, 16), tonumber(G, 16), tonumber(B, 16)
end

function p.main(frame)
local args = getArgs(frame)
local value = tonumber(args[1])
local minValue = tonumber(args[2])
local maxValue = tonumber(args[3])

if value == nil or minValue == nil or maxValue == nil then
return require('Module:Error').error{'Parameters 1, 2, and 3 are required and must be numbers.'}
end

local minR, minG, minB = rgb(args[4] or 'FFFFFF')
local maxR, maxG, maxB = rgb(args[5] or '000000')

local percent = math.max(0, math.min(1, (value - minValue) / (maxValue - minValue)))

local red = minR + ((maxR - minR) * percent)
local green = minG + ((maxG - minG) * percent)
local blue = minB + ((maxB - minB) * percent)

if args['hex'] then
return string.format('#%x%x%x', red, green, blue)
else
return string.format('rgb(%.0f,%.0f,%.0f)', red, green, blue)
end
end

return p

Navigation menu