Module:Booruuser
From Soyjak Wiki, the free ensoyclopedia
Jump to navigationJump to search
| This module is rated as deprecated and should no longer be used. |
local m = {}
-- reverse lookup cache
local userClassMap
local function getMap()
if userClassMap then
return userClassMap
end
local title = mw.title.new("Template:Booruuser/users.json")
local content = title and title:getContent() or "{}"
local data = mw.text.jsonDecode(content)
userClassMap = {}
for class, users in pairs(data) do
if type(users) == "table" then
for _, u in ipairs(users) do
if type(u) == "string" then
userClassMap[string.lower(u)] = class
end
end
end
end
return userClassMap
end
function m.main(frame)
local args = frame.args
local user = args[1] or "user"
local label = args.label or user
local overrideClass = args.class
local userKey = string.lower(user)
local class = overrideClass or getMap()[userKey] or "user"
local colorMap = {
blocked = "#383838",
user = "#828282",
trusted = "#3F9E3A",
approver = "#ff760d",
janitor = "#f1c40f",
moderator = "#4287f5",
admin = "#ef4444"
}
local weightMap = {
approver = "bold",
janitor = "bold",
moderator = "bold",
admin = "bold"
}
local color = colorMap[class] or "#000000"
local weight = weightMap[class] or "normal"
local deco = (class == "blocked") and "line-through" or ""
return string.format(
'<span class="plainlinks">[https://soybooru.com/user/%s <span style="color:%s;font-weight:%s;text-decoration:%s">%s</span>]</span>',
user,
color,
weight,
deco,
label
)
end
return m