<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ARFPP</id>
	<title>Module:RFPP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ARFPP"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:RFPP&amp;action=history"/>
	<updated>2026-05-28T15:10:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:RFPP&amp;diff=144550&amp;oldid=prev</id>
		<title>imported&gt;Mr. Stradivarius: finished adding features</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:RFPP&amp;diff=144550&amp;oldid=prev"/>
		<updated>2014-05-13T11:54:38Z</updated>

		<summary type="html">&lt;p&gt;finished adding features&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local mArguments -- lazily initialise [[Module:Arguments]]&lt;br /&gt;
local mUserLinks -- lazily initialise [[Module:UserLinks]]&lt;br /&gt;
local data = mw.loadData(&amp;#039;Module:RFPP/data&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function makeTimeBlurb(time)&lt;br /&gt;
	local indefStrings = data.indefStrings -- matches &amp;quot;indef&amp;quot;, &amp;quot;infinite&amp;quot;, etc.&lt;br /&gt;
	if not time then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	elseif indefStrings[time] then&lt;br /&gt;
		return &amp;quot; &amp;#039;&amp;#039;&amp;#039;indefinitely&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		local stringToFormat = &amp;quot; for a period of &amp;#039;&amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;#039;.&amp;quot;&lt;br /&gt;
			.. &amp;#039; After %s the page will be automatically unprotected&amp;#039;&lt;br /&gt;
		return string.format(stringToFormat, time, time)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeUserLinks(user, userType)&lt;br /&gt;
	mUserLinks = mUserLinks or require(&amp;#039;Module:UserLinks&amp;#039;)&lt;br /&gt;
	local ulargs&lt;br /&gt;
	if userType == &amp;#039;admin&amp;#039; then&lt;br /&gt;
		ulargs = {&amp;#039;t&amp;#039;, &amp;#039;c&amp;#039;, &amp;#039;bls&amp;#039;, &amp;#039;pr&amp;#039;, &amp;#039;del&amp;#039;, &amp;#039;m&amp;#039;, &amp;#039;rl&amp;#039;, &amp;#039;rfa&amp;#039;}&lt;br /&gt;
	else&lt;br /&gt;
		ulargs = {&amp;#039;t&amp;#039;, &amp;#039;c&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	ulargs.user = user&lt;br /&gt;
	return mUserLinks._main(ulargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Main functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	local args = mArguments.getArgs(frame, {parentOnly = true})&lt;br /&gt;
	return p._main(args) or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local code = args[1]&lt;br /&gt;
	if not code then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Get the blurb from the data table.&lt;br /&gt;
	local responseData = data.codes[code]&lt;br /&gt;
	if not responseData then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local blurb = responseData.blurb&lt;br /&gt;
&lt;br /&gt;
	-- Set up the table of parameter functions.&lt;br /&gt;
	local maxParam = 1 -- Tracks the parameter to use for the note.&lt;br /&gt;
	local function setMaxParam(n)&lt;br /&gt;
		if n &amp;gt; maxParam then&lt;br /&gt;
			maxParam = n&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local parameterFunctions = {&lt;br /&gt;
		[&amp;#039;$1&amp;#039;] = function ()&lt;br /&gt;
			local param = 2&lt;br /&gt;
			setMaxParam(param)&lt;br /&gt;
			return makeTimeBlurb(args[param])&lt;br /&gt;
		end,&lt;br /&gt;
		[&amp;#039;$2&amp;#039;] = function ()&lt;br /&gt;
			local param = 2&lt;br /&gt;
			setMaxParam(param)&lt;br /&gt;
			local username = args[param]&lt;br /&gt;
			if username then&lt;br /&gt;
				return &amp;#039;: &amp;#039; .. makeUserLinks(username, &amp;#039;user&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
		[&amp;#039;$3&amp;#039;] = function ()&lt;br /&gt;
			local param = 3&lt;br /&gt;
			setMaxParam(param)&lt;br /&gt;
			local username = args[param]&lt;br /&gt;
			if username then&lt;br /&gt;
				return &amp;#039; blocked by &amp;#039; .. makeUserLinks(username, &amp;#039;admin&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
		[&amp;#039;$4&amp;#039;] = function ()&lt;br /&gt;
			local param = 2&lt;br /&gt;
			setMaxParam(param)&lt;br /&gt;
			local username = args[param]&lt;br /&gt;
			if username then&lt;br /&gt;
				return &amp;#039; by &amp;#039; .. makeUserLinks(username, &amp;#039;admin&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- Substitute the parameters into the blurb using the parameter functions.&lt;br /&gt;
	blurb = blurb:gsub(&lt;br /&gt;
		&amp;#039;$[1-4]&amp;#039;,&lt;br /&gt;
		function (param)&lt;br /&gt;
			return parameterFunctions[param]() or &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Add the note.&lt;br /&gt;
	local note = args[maxParam + 1]&lt;br /&gt;
	if note then&lt;br /&gt;
		local noteType = responseData.note&lt;br /&gt;
		local stringToFormat&lt;br /&gt;
		if noteType == &amp;#039;sentence&amp;#039; then&lt;br /&gt;
			stringToFormat = &amp;quot;%s &amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
		elseif noteType == &amp;#039;fragment&amp;#039; then&lt;br /&gt;
			stringToFormat = &amp;quot;%s, &amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			stringToFormat = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		blurb = string.format(stringToFormat, blurb, note)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return blurb&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Mr. Stradivarius</name></author>
	</entry>
</feed>