Module:High-use: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
m
				
Tidy full stops
imported>Hb1290 No edit summary  | 
				en>GKFX  m (Tidy full stops)  | 
				||
| Line 1: | Line 1: | ||
local p = {}  | local p = {}  | ||
-- _fetch looks at the "demo" argument.  | |||
local _fetch = require('Module:Transclusion_count').fetch  | local _fetch = require('Module:Transclusion_count').fetch  | ||
| Line 33: | Line 34: | ||
		end  | 		end  | ||
		-- Insert   | 		-- Insert percentage of pages if that is likely to be >= 1%  | ||
		if   | 		if count and count > 250000 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)  | 			if percent >= 1 then  | ||
				return_value = string.format("%s pages, or roughly %s%% of all", return_value, percent)  | |||
			end  | |||
		end	  | 		end	  | ||
	end  | 	end  | ||
| Line 55: | Line 58: | ||
function p.text(frame, count)  | function p.text(frame, count)  | ||
	local bot_text = "\n\n----\  | 	-- Only show the information about how this template gets updated if someone  | ||
	-- is actually editing the page and maybe trying to update the count.  | |||
	local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or ''  | |||
	if count == nil then count = _fetch(frame) end  | 	if count == nil then count = _fetch(frame) end  | ||
	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 68: | ||
	end  | 	end  | ||
	local   | 	local systemMessages = frame.args['system']  | ||
	if frame.args['system'] == '' then  | |||
		systemMessages = nil  | |||
	end  | |||
	local templateCount = ('on [https://templatecount.toolforge.org/index.php?lang=en&namespace=%s&name=%s %s pages]'):format(  | |||
		mw.title.getCurrentTitle().namespace, mw.uri.encode(title.text), p.num(frame, count))  | |||
	local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used ';  | |||
	if systemMessages then  | |||
		used_on_text = used_on_text .. systemMessages ..  | |||
			((count and count > 2000) and (",''' and " .. templateCount) or ("'''"))  | |||
	else  | |||
		used_on_text = used_on_text .. templateCount .. "'''"  | |||
	end  | |||
	local sandbox_text =    | 	local sandbox_text =  ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format(  | ||
		(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"),  | |||
		title.fullText, title.fullText,  | |||
		mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage"  | |||
	)  | 	)  | ||
	if (frame.args[1] == "risk" or (count and count >= 100000) ) then  | 	local infoArg = frame.args["info"] ~= "" and frame.args["info"]  | ||
		local info =   | 	if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then  | ||
		if   | 		local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.'  | ||
			info = "<br />" ..   | 		if infoArg then  | ||
			info = info .. "<br />" .. infoArg  | |||
		end  | 		end  | ||
		sandbox_text =   | 		sandbox_text = info .. '<br /> To avoid major disruption' ..  | ||
			(count and count >= 100000 and ' and server load' or '') ..  | |||
			', any changes should be tested in the ' .. sandbox_text ..  | |||
			'The tested changes can be added to this page in a single edit. '  | |||
	else  | 	else  | ||
		sandbox_text =   | 		sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..  | ||
			'hanges may be widely noticed. Test changes in the ' .. sandbox_text  | |||
	end  | 	end  | ||
	local discussion_text =   | 	local discussion_text = systemMessages and 'Please discuss changes ' or '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"])  | ||
| Line 103: | Line 113: | ||
	end  | 	end  | ||
	return   | 	return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text  | ||
end  | end  | ||
function p.main(frame)  | function p.main(frame)  | ||
	local count = _fetch(frame)  | 	local count = _fetch(frame)  | ||
	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  | 	local epilogue = ''  | ||
	if frame.args['system'] and frame.args['system'] ~= '' then  | |||
		image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]"  | |||
		type_param = "content"  | |||
		local nocat = frame:getParent().args['nocat'] or frame.args['nocat']  | |||
		local categorise = (nocat == '' or not require('Module:Yesno')(nocat))  | |||
		if categorise then  | |||
			epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}')  | |||
		end  | |||
	elseif (frame.args[1] == "risk" or (count and count >= 100000)) then  | |||
		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 117: | Line 135: | ||
	if frame.args["form"] == "editnotice" then  | 	if frame.args["form"] == "editnotice" then  | ||
		return frame:expandTemplate{  | |||
				title = 'editnotice',  | 				title = 'editnotice',  | ||
				args = {  | 				args = {  | ||
| Line 124: | Line 142: | ||
						["expiry"] = (frame.args["expiry"] or "")  | 						["expiry"] = (frame.args["expiry"] or "")  | ||
				}  | 				}  | ||
		}  | 		} .. epilogue  | ||
	else  | 	else  | ||
		return require('Module:Message box').main('ombox', {  | |||
			type = type_param,  | |||
			image = image,  | |||
			text = p.text(frame, count),  | |||
			expiry = (frame.args["expiry"] or "")  | |||
		}) .. epilogue  | |||
		}  | |||
	end  | 	end  | ||
end  | end  | ||
return p  | return p  | ||