Module:STikiLeaderboard
Appearance
| This module is rated as beta. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected. |
This module displays statistics about a given editor's use of the STiki anti-vandalism tool. It reads the information from Wikipedia:STiki/leaderboard.
Usage
[edit]{{#invoke:STikiLeaderboard|<!-- code -->|<!--username-->}}
| Leaderboard data field | Code |
|---|---|
| Rank | rank
|
| Uses | uses
|
| Percentage of edits tagged as vandalism | vand
|
| Percentage of edits reverted while assuming good faith | agf
|
| Favourite queue | queue
|
| First use | first
|
| Last use | last
|
| Average daily edits | avg
|
| Uses yesterday | yest
|
| Uses in the last 30 days | last30
|
Examples
[edit]| Input | Output |
|---|---|
{{#invoke:STikiLeaderboard|rank|West.andrew.g}}
|
9 |
{{#invoke:STikiLeaderboard|uses|West.andrew.g}}
|
69036 |
{{#invoke:STikiLeaderboard|queue|Fraggle81}}
|
Cluebot-NG |
{{#invoke:STikiLeaderboard|first|Widr}}
|
2684 |
-- Get the raw leaderboard content.
local lb = mw.title.new('Wikipedia:STiki/Leaderboard')
local lbtext = (lb and lb:getContent()) or error('Could not find the leaderboard text')
-- Get a specific data value for a given username.
local function findLeaderboardData(dfield, username)
username = username:gsub('%p', '%%%0')
local r = {}
r.rank, r.uses, r.vand, r.agf, r.queue, r.first, r.last, r.avg, r.yest, r.last30 = string.match(
lbtext,
'\n| align=center | (%d+) || align=left | %[%[User:' .. username .. '|' .. username ..
'%]%] %(%[%[User_Talk:' .. username .. '|talk%]%] | %[%[Special:Contributions/' ..
username .. '|contribs%]%]%) || align=right | (%d+) || align=right | ([%d%.]+)%% ' ..
'|| align=right | ([%d%.]+)%% || align=center | (%S+) || align=right ' ..
'| {{ntsh|%d+}} (%d+) days ago || align=right | {{ntsh|%d+}} (%d+) days ago || align=right ' ..
'| {{ntsh|[%d%.]+}} ([%d%.]+) edits || align=right | (%d+) || align=right | (%d+)'
)
return r[dfield]
end
-- Expose the data values to wikitext
return setmetatable({}, {
__index = function (t, key)
return function (frame)
local username = frame.args[1] or ''
username = mw.getContentLanguage():ucfirst(mw.text.trim(username))
if username == '' then
error('No username specified')
end
return findLeaderboardData(key, username)
end
end
})