در حال ویرایش پودمان:High-use
این ویرایش را میتوان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که میخواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثیسازی ویرایش را به پایان ببرید.
نسخهٔ فعلی | متن شما | ||
خط ۱: | خط ۱: | ||
local p = {} | local p = {} | ||
local _fetch = require('Module:Transclusion_count').fetch | local _fetch = require('Module:Transclusion_count').fetch | ||
function p.num(frame, count) | function p.num(frame, count) | ||
if count == nil then | if count == nil then count = _fetch(frame) end | ||
-- Build output string | -- Build output string | ||
خط ۳۲: | خط ۲۴: | ||
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 | ||
خط ۴۰: | خط ۳۲: | ||
return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) | return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) | ||
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 | ||
خط ۶۵: | خط ۵۵: | ||
function p.text(frame, count) | function p.text(frame, count) | ||
local bot_text = "\n\n----\nTransclusion count updated by [[User:Ahechtbot|Ahechtbot]]." | |||
if frame.args["nobot"] == true then | |||
local bot_text = | bot_text = "" | ||
end | |||
if count == nil then count = _fetch(frame) end | |||
local return_value = {} | |||
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 | ||
خط ۸۱: | خط ۶۸: | ||
end | end | ||
local | local templatecount = string.format("https://templatecount.toolforge.org/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 (frame.args[1] == "risk" or (count and count >= 100000) ) then | |||
if ( | local info = "" | ||
local info = | if frame.args["info"] and frame.args["info"] ~= "" then | ||
if | info = "<br />" .. frame.args["info"] | ||
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 = "Consider discussing 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"]) | ||
خط ۱۲۸: | خط ۱۰۳: | ||
end | end | ||
return used_on_text | return table.concat({used_on_text, sandbox_text, discussion_text, " before implementing them.", bot_text}) | ||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local count = | 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" | ||
خط ۱۵۵: | خط ۱۱۷: | ||
if frame.args["form"] == "editnotice" then | if frame.args["form"] == "editnotice" then | ||
return_value = frame:expandTemplate{ | |||
title = 'editnotice', | title = 'editnotice', | ||
args = { | args = { | ||
خط ۱۶۲: | خط ۱۲۴: | ||
["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 |