Editing Module:High-use
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local _fetch = require('Module:Transclusion_count').fetch | local _fetch = require('Module:Transclusion_count').fetch | ||
Line 16: | Line 15: | ||
end | end | ||
else | else | ||
-- Use 2 | -- Use 2 sigfigs for smaller numbers and 3 for larger ones | ||
local sigfig = 2 | local sigfig = 2 | ||
if count >= 100000 then | if count >= 100000 then | ||
Line 25: | Line 24: | ||
local f = math.floor(math.log10(count)) - sigfig + 1 | local f = math.floor(math.log10(count)) - sigfig + 1 | ||
-- Round and insert " | -- Round and insert "apprxomimately" or "+" when appropriate | ||
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then | if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then | ||
-- Round down | -- Round down | ||
Line 34: | Line 33: | ||
end | end | ||
-- Insert | -- Insert percent of pages | ||
if | if frame.args["all-pages"] and frame.args["all-pages"] ~= "" then | ||
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) | local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) | ||
return_value = string.format("%s pages, or roughly %s%% of all", return_value, percent) | |||
end | end | ||
end | end | ||
Line 45: | Line 42: | ||
return return_value | return return_value | ||
end | end | ||
function p.risk(frame) | function p.risk(frame) | ||
local return_value = "" | local return_value = "" | ||
Line 58: | Line 55: | ||
function p.text(frame, count) | function p.text(frame, count) | ||
if count == nil then count = _fetch(frame) end | |||
local return_value = {} | |||
local | |||
local title = mw.title.getCurrentTitle() | local title = mw.title.getCurrentTitle() | ||
if title.subpageText == "doc" or title.subpageText == "sandbox" then | if title.subpageText == "doc" or title.subpageText == "sandbox" then | ||
Line 68: | Line 63: | ||
end | end | ||
local | local templatecount = string.format("https://tools.wmflabs.org/templatecount/index.php?lang=en&namespace=%s&name=%s",mw.title.getCurrentTitle().namespace,mw.uri.encode(title.text)) | ||
local used_on_text = string.format("'''This %s is used on [%s %s pages]'''", | |||
(mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template"), | |||
templatecount, | |||
p.num(frame, count) | |||
) | |||
local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages | local sandbox_text = string.format("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages%s ", | ||
(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"), | |||
title.fullText, title.fullText, | |||
(mw.title.getCurrentTitle().namespace == 828 and "." or ", or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].") | |||
) | ) | ||
if ( | if (frame.args[1] == "risk" or (count and count >= 100000) ) then | ||
local info = | local info = "" | ||
if frame.args["info"] and frame.args["info"] ~= "" then | if frame.args["info"] and frame.args["info"] ~= "" then | ||
info = | info = "<br />" .. frame.args["info"] | ||
end | end | ||
sandbox_text = | sandbox_text = string.format(".%s<br /> To avoid major disruption and server load, any changes should be tested in the %sThe tested changes can be added to this page in a single edit. ", | ||
info, sandbox_text | |||
) | |||
else | else | ||
sandbox_text = | sandbox_text = string.format("and changes may be widely noticed. Test changes in the %s", | ||
sandbox_text | |||
) | |||
end | end | ||
local discussion_text = | local discussion_text = "Please discuss changes " | ||
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then | if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then | ||
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) | discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) | ||
Line 111: | Line 98: | ||
end | end | ||
return used_on_text | return table.concat({used_on_text, sandbox_text, discussion_text, " before implementing them."}) | ||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local count = _fetch(frame) | local count = _fetch(frame) | ||
local return_value = "" | |||
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" | local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" | ||
local type_param = "style" | local type_param = "style" | ||
if (frame.args[1] == "risk" or (count and count >= 100000) ) then | |||
if | |||
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" | image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" | ||
type_param = "content" | type_param = "content" | ||
Line 133: | Line 112: | ||
if frame.args["form"] == "editnotice" then | if frame.args["form"] == "editnotice" then | ||
return_value = frame:expandTemplate{ | |||
title = 'editnotice', | title = 'editnotice', | ||
args = { | args = { | ||
Line 140: | Line 119: | ||
["expiry"] = (frame.args["expiry"] or "") | ["expiry"] = (frame.args["expiry"] or "") | ||
} | } | ||
} | } | ||
else | else | ||
return_value = frame:expandTemplate{ | |||
title = 'ombox', | |||
args = { | |||
["type"] = type_param, | |||
["image"] = image, | |||
} | ["text"] = p.text(frame, count), | ||
["expiry"] = (frame.args["expiry"] or "") | |||
} | |||
} | |||
end | end | ||
return return_value | |||
end | end | ||
return p | return p |