p = {}
-- Get the raw leaderboard content.
local leaderboard = mw.title.new('Wikipedia:STiki/leaderboard')
local leaderboardText
if leaderboard then
leaderboardText = leaderboard:getContent()
end
-- Get the rank and uses for a given username.
local function findLeaderboardVals(username)
if not username then
return error('No username specified')
end
if not leaderboardText then
error('Could not find the leaderboard text')
end
local rank, uses = mw.ustring.match(leaderboardText, '\n| align=center | (%d+) || align=left | %[%[User:' .. username .. '|' .. username .. '%]%] %(%[%[User_Talk:' .. username .. '|talk%]%] | %[%[Special:Contributions/' .. username .. '|contribs%]%]%) || align=right | (%d+) ||')
return rank, uses
end
-- Get the username from #invoke and return the rank using findLeaderboardVals().
function p.rank(frame)
local username = frame.args[1]
local rank, uses = findLeaderboardVals(username)
return rank
end
-- Get the username from #invoke and return the uses using findLeaderboardVals().
function p.uses(frame)
local username = frame.args[1]
local rank, uses = findLeaderboardVals(username)
return uses
end
return p