From Wikipedia, the free encyclopedia

local mArguments -- lazily initialise [[Module:Arguments]]

local mUserLinks -- lazily initialise [[Module:UserLinks]]

local data = mw.loadData('Module:RFPP/data')



local p = {}



--------------------------------------------------------------------------------

-- Helper functions

--------------------------------------------------------------------------------



local function makeTimeBlurb(time)

	local indefStrings = data.indefStrings -- matches "indef", "infinite", etc.

	if not time then

		return ''

	elseif indefStringstime then

		return " '''indefinitely'''"

	else

		local stringToFormat = " for a period of '''%s'''."

			.. ' After %s the page will be automatically unprotected'

		return string.format(stringToFormat, time, time)

	end

end



local function makeUserLinks(user, userType)

	mUserLinks = mUserLinks or require('Module:UserLinks')

	local ulargs

	if userType == 'admin' then

		ulargs = {'t', 'c', 'bls', 'pr', 'del', 'm', 'rl', 'rfa'}

	else

		ulargs = {'t', 'c'}

	end

	ulargs.user = user

	return mUserLinks._main(ulargs)

end



--------------------------------------------------------------------------------

-- Main functions

--------------------------------------------------------------------------------



function p.main(frame)

	mArguments = require('Module:Arguments')

	local args = mArguments.getArgs(frame, {parentOnly = true})

	return p._main(args) or ''

end



function p._main(args)

	local code = args1

	if not code then

		return nil

	end



	-- Get the blurb from the data table.

	local responseData = data.codescode

	if not responseData then

		return nil

	end

	local blurb = responseData.blurb



	-- Set up the table of parameter functions.

	local maxParam = 1 -- Tracks the parameter to use for the note.

	local function setMaxParam(n)

		if n > maxParam then

			maxParam = n

		end

	end

	local parameterFunctions = {

		'$1' = function ()

			local param = 2

			setMaxParam(param)

			return makeTimeBlurb(argsparam])

		end,

		'$2' = function ()

			local param = 2

			setMaxParam(param)

			local username = argsparam

			if username then

				return ': ' .. makeUserLinks(username, 'user')

			end

		end,

		'$3' = function ()

			local param = 3

			setMaxParam(param)

			local username = argsparam

			if username then

				return ' blocked by ' .. makeUserLinks(username, 'admin')

			end

		end,

		'$4' = function ()

			local param = 2

			setMaxParam(param)

			local username = argsparam

			if username then

				return ' by ' .. makeUserLinks(username, 'admin')

			end

		end

	}



	-- Substitute the parameters into the blurb using the parameter functions.

	blurb = blurb:gsub(

		'$[1-4]',

		function (param)

			return parameterFunctionsparam]() or ''

		end

	)



	-- Add the note.

	local note = argsmaxParam + 1

	if note then

		local noteType = responseData.note

		local stringToFormat

		if noteType == 'sentence' then

			stringToFormat = "%s ''%s''"

		elseif noteType == 'fragment' then

			stringToFormat = "%s, ''%s''"

		else

			stringToFormat = ''

		end

		blurb = string.format(stringToFormat, blurb, note)

	end



	return blurb

end



return p
From Wikipedia, the free encyclopedia

local mArguments -- lazily initialise [[Module:Arguments]]

local mUserLinks -- lazily initialise [[Module:UserLinks]]

local data = mw.loadData('Module:RFPP/data')



local p = {}



--------------------------------------------------------------------------------

-- Helper functions

--------------------------------------------------------------------------------



local function makeTimeBlurb(time)

	local indefStrings = data.indefStrings -- matches "indef", "infinite", etc.

	if not time then

		return ''

	elseif indefStringstime then

		return " '''indefinitely'''"

	else

		local stringToFormat = " for a period of '''%s'''."

			.. ' After %s the page will be automatically unprotected'

		return string.format(stringToFormat, time, time)

	end

end



local function makeUserLinks(user, userType)

	mUserLinks = mUserLinks or require('Module:UserLinks')

	local ulargs

	if userType == 'admin' then

		ulargs = {'t', 'c', 'bls', 'pr', 'del', 'm', 'rl', 'rfa'}

	else

		ulargs = {'t', 'c'}

	end

	ulargs.user = user

	return mUserLinks._main(ulargs)

end



--------------------------------------------------------------------------------

-- Main functions

--------------------------------------------------------------------------------



function p.main(frame)

	mArguments = require('Module:Arguments')

	local args = mArguments.getArgs(frame, {parentOnly = true})

	return p._main(args) or ''

end



function p._main(args)

	local code = args1

	if not code then

		return nil

	end



	-- Get the blurb from the data table.

	local responseData = data.codescode

	if not responseData then

		return nil

	end

	local blurb = responseData.blurb



	-- Set up the table of parameter functions.

	local maxParam = 1 -- Tracks the parameter to use for the note.

	local function setMaxParam(n)

		if n > maxParam then

			maxParam = n

		end

	end

	local parameterFunctions = {

		'$1' = function ()

			local param = 2

			setMaxParam(param)

			return makeTimeBlurb(argsparam])

		end,

		'$2' = function ()

			local param = 2

			setMaxParam(param)

			local username = argsparam

			if username then

				return ': ' .. makeUserLinks(username, 'user')

			end

		end,

		'$3' = function ()

			local param = 3

			setMaxParam(param)

			local username = argsparam

			if username then

				return ' blocked by ' .. makeUserLinks(username, 'admin')

			end

		end,

		'$4' = function ()

			local param = 2

			setMaxParam(param)

			local username = argsparam

			if username then

				return ' by ' .. makeUserLinks(username, 'admin')

			end

		end

	}



	-- Substitute the parameters into the blurb using the parameter functions.

	blurb = blurb:gsub(

		'$[1-4]',

		function (param)

			return parameterFunctionsparam]() or ''

		end

	)



	-- Add the note.

	local note = argsmaxParam + 1

	if note then

		local noteType = responseData.note

		local stringToFormat

		if noteType == 'sentence' then

			stringToFormat = "%s ''%s''"

		elseif noteType == 'fragment' then

			stringToFormat = "%s, ''%s''"

		else

			stringToFormat = ''

		end

		blurb = string.format(stringToFormat, blurb, note)

	end



	return blurb

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook