|
|
Line 1: |
Line 1: |
| local p = {}
| |
|
| |
| -- Clean up the rarity string: strip ~, commas, trim
| |
| local function clean(rarity)
| |
| if not rarity or type(rarity) ~= "string" then return nil end
| |
| rarity = mw.text.trim(rarity)
| |
| rarity = rarity:gsub("^~", "") -- remove ~
| |
| rarity = rarity:gsub(",", "") -- remove commas
| |
| return rarity
| |
| end
| |
|
| |
| function p.getSortValue(frame) | | function p.getSortValue(frame) |
| local raw = frame.args[1] | | local raw = frame.args[1] |
| if not raw or type(raw) ~= "string" then return 999999999 end | | if not raw or type(raw) ~= "string" then |
| | return 999999999 |
| | end |
|
| |
|
| local rarity = clean(raw) | | local rarity = clean(raw) |
Line 27: |
Line 18: |
| end | | end |
|
| |
|
| -- Match 1/X, return raw number (not string)
| |
| local numStr = lowered:match("^1/(%d+%.?%d*)$") | | local numStr = lowered:match("^1/(%d+%.?%d*)$") |
| if numStr then | | if numStr then |
| local num = tonumber(numStr) | | local n = tonumber(numStr) |
| if num then return math.floor(num) end | | if n then |
| | return tonumber(math.floor(n)) -- <- THIS is the key |
| | end |
| end | | end |
|
| |
|
| return 999999999 | | return 999999999 |
| end | | end |
|
| |
| -- For logic styling
| |
| function p.getCleanValue(frame)
| |
| local rarity = clean(frame.args[1])
| |
| if not rarity then return "Unknown" end
| |
| if rarity == "1" then return "Always" end
| |
| return rarity
| |
| end
| |
|
| |
| -- For display
| |
| function p.normalizeDisplay(frame)
| |
| local original = frame.args[1]
| |
| if not original or type(original) ~= "string" then return "Unknown" end
| |
| local trimmed = mw.text.trim(original)
| |
| local hasTilde = trimmed:sub(1, 1) == "~"
| |
| local cleaned = hasTilde and trimmed:sub(2) or trimmed
| |
|
| |
| if cleaned == "1" then return "Always" end
| |
|
| |
| local prefix, num = cleaned:match("^(1/)(%d+%.?%d*)$")
| |
| if prefix and num then
| |
| local withCommas = mw.language.getContentLanguage():formatNum(tonumber(num))
| |
| return (hasTilde and "~" or "") .. prefix .. withCommas
| |
| end
| |
|
| |
| return hasTilde and "~" .. cleaned or cleaned
| |
| end
| |
|
| |
| return p
| |