<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/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://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ARFPP"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:RFPP&amp;action=history"/>
	<updated>2026-06-21T16:56:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:RFPP&amp;diff=479064&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:RFPP&amp;diff=479064&amp;oldid=prev"/>
		<updated>2021-07-16T05:32:33Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&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('Module:RFPP/data')&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 ''&lt;br /&gt;
	elseif indefStrings[time] then&lt;br /&gt;
		return &amp;quot; '''indefinitely'''&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		local stringToFormat = &amp;quot; for a period of '''%s'''.&amp;quot;&lt;br /&gt;
			.. ' After %s the page will be automatically unprotected'&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('Module:UserLinks')&lt;br /&gt;
	local ulargs&lt;br /&gt;
	if userType == 'admin' then&lt;br /&gt;
		ulargs = {'t', 'c', 'bls', 'pr', 'del', 'm', 'rl', 'rfa'}&lt;br /&gt;
	else&lt;br /&gt;
		ulargs = {'t', 'c'}&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('Module:Arguments')&lt;br /&gt;
	local args = mArguments.getArgs(frame, {parentOnly = true})&lt;br /&gt;
	return p._main(args) or ''&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;
		['$1'] = 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;
		['$2'] = 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 ': ' .. makeUserLinks(username, 'user')&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
		['$3'] = 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 ' blocked by ' .. makeUserLinks(username, 'admin')&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
		['$4'] = 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 ' by ' .. makeUserLinks(username, 'admin')&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;
		'$[1-4]',&lt;br /&gt;
		function (param)&lt;br /&gt;
			return parameterFunctions[param]() or ''&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 == 'sentence' then&lt;br /&gt;
			stringToFormat = &amp;quot;%s ''%s''&amp;quot;&lt;br /&gt;
		elseif noteType == 'fragment' then&lt;br /&gt;
			stringToFormat = &amp;quot;%s, ''%s''&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			stringToFormat = ''&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>Zoran</name></author>
	</entry>
</feed>