<?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%3ABackwards_copy</id>
	<title>Module:Backwards copy - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ABackwards_copy"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Backwards_copy&amp;action=history"/>
	<updated>2026-04-04T13:11:49Z</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:Backwards_copy&amp;diff=135352&amp;oldid=prev</id>
		<title>imported&gt;MusikBot II: Protected &quot;Module:Backwards copy&quot;: High-risk template or module: 1448 transclusions (more info) ([Edit=Require autoconfirmed or confirmed access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Backwards_copy&amp;diff=135352&amp;oldid=prev"/>
		<updated>2022-08-18T18:00:01Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/research/Module:Backwards_copy&quot; title=&quot;Module:Backwards copy&quot;&gt;Module:Backwards copy&lt;/a&gt;&amp;quot;: &lt;a href=&quot;https://en.wikipedia.org/wiki/High-risk_templates&quot; class=&quot;extiw&quot; title=&quot;wikipedia:High-risk templates&quot;&gt;High-risk template or module&lt;/a&gt;: 1448 transclusions (&lt;a href=&quot;/index.php?title=User:MusikBot_II/TemplateProtector&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:MusikBot II/TemplateProtector (page does not exist)&quot;&gt;more info&lt;/a&gt;) ([Edit=Require autoconfirmed or confirmed access] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local MessageBox = require(&amp;quot;Module:Message box&amp;quot;)&lt;br /&gt;
local yesno = require(&amp;quot;Module:Yesno&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function demoCheck(args)&lt;br /&gt;
	return yesno(args[&amp;quot;demo&amp;quot;]) or yesno(args[&amp;quot;nocat&amp;quot;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function showWarning(text, nocat)&lt;br /&gt;
	mw.addWarning(text)&lt;br /&gt;
	return nocat and &amp;quot;&amp;quot; or &amp;quot;[[Category:Pages with backwards copy warnings]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function delink(text)&lt;br /&gt;
	if text == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	return string.gsub(string.gsub(require(&amp;quot;Module:Delink&amp;quot;)._delink{text}, &amp;quot;%[%[&amp;quot;, &amp;quot;&amp;quot;), &amp;quot;%]%]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function showError(text, nocat)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&amp;quot;%s%s %s&amp;quot;,&lt;br /&gt;
		nocat and &amp;quot;&amp;quot; or &amp;quot;[[Category:Pages with backwards copy errors]] &amp;quot;,&lt;br /&gt;
		tostring(&lt;br /&gt;
			mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
				:css(&amp;quot;color&amp;quot;, &amp;quot;red&amp;quot;)&lt;br /&gt;
				:css(&amp;quot;font-weight&amp;quot;, &amp;quot;bold&amp;quot;)&lt;br /&gt;
				:wikitext(&amp;quot;Error:&amp;quot;)&lt;br /&gt;
		),&lt;br /&gt;
		text&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function row(args, i)&lt;br /&gt;
	return mw.html.create(&amp;quot;li&amp;quot;):wikitext(rowText)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function bannerText(frame, args)&lt;br /&gt;
	local text = &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local id = args[&amp;quot;id&amp;quot;] or args[&amp;quot;revid&amp;quot;]&lt;br /&gt;
	if id ~= nil then&lt;br /&gt;
		text = string.format(&amp;quot;Revisions succeeding [[Special:Diff/%s|this version]] of this&amp;quot;, id)&lt;br /&gt;
	else&lt;br /&gt;
		text = &amp;quot;This&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local citations = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while (&lt;br /&gt;
		args[tostring(i)] or &lt;br /&gt;
			(args[&amp;quot;articlename&amp;quot; .. i] or (i == 1 and args[&amp;quot;articlename&amp;quot;])) or &lt;br /&gt;
			(args[&amp;quot;title&amp;quot; .. i] or (i == 1 and args[&amp;quot;title&amp;quot;]))&lt;br /&gt;
	) do&lt;br /&gt;
		if args[tostring(i)] then&lt;br /&gt;
			table.insert(citations, args[tostring(i)])&lt;br /&gt;
		else&lt;br /&gt;
			local author = args[&amp;quot;author&amp;quot; .. i] or (i == 1 and args[&amp;quot;author&amp;quot;])&lt;br /&gt;
			local authors = args[&amp;quot;authorlist&amp;quot; .. i] or (i == 1 and args[&amp;quot;authorlist&amp;quot;])&lt;br /&gt;
			local date = (args[&amp;quot;date&amp;quot; .. i] or (i == 1 and args[&amp;quot;date&amp;quot;])) or&lt;br /&gt;
				-- legacy way of providing dates&lt;br /&gt;
				string.format(&lt;br /&gt;
					&amp;quot;%s %s&amp;quot;,&lt;br /&gt;
					args[&amp;quot;monthday&amp;quot; .. i] or (i == 1 and args[&amp;quot;monthday&amp;quot;]) or &amp;quot;&amp;quot;,&lt;br /&gt;
					args[&amp;quot;year&amp;quot; .. i] or (i == 1 and args[&amp;quot;year&amp;quot;]) or &amp;quot;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
				&lt;br /&gt;
			if mw.text.trim(date or &amp;quot;&amp;quot;) == &amp;quot;&amp;quot; then&lt;br /&gt;
				if string.match(author or &amp;quot;&amp;quot;, &amp;quot;(%d%d%d[%d]+)&amp;quot;) then&lt;br /&gt;
					text = text .. &amp;quot; &amp;quot; .. showWarning(string.format(&lt;br /&gt;
						&amp;quot;A &amp;lt;code&amp;gt;year%s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;date%s&amp;lt;/code&amp;gt; parameter was not found, but a parenthesized year was found in the &amp;quot; ..&lt;br /&gt;
						&amp;quot;&amp;lt;code&amp;gt;author%s&amp;lt;/code&amp;gt; parameter. Move the provided year to the correct parameter.&amp;quot;,&lt;br /&gt;
						i, i, i&lt;br /&gt;
					), demoCheck(args))&lt;br /&gt;
				elseif string.match(authors or &amp;quot;&amp;quot;, &amp;quot;(%d%d%d[%d]*)&amp;quot;) then&lt;br /&gt;
					text = text .. &amp;quot; &amp;quot; .. showWarning(string.format(&lt;br /&gt;
						&amp;quot;A &amp;lt;code&amp;gt;year%s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;date%s&amp;lt;/code&amp;gt; parameter was not found, but a parenthesized year was found in the &amp;quot; ..&lt;br /&gt;
						&amp;quot;&amp;lt;code&amp;gt;authorlist%s&amp;lt;/code&amp;gt; parameter. Move the provided year to the correct parameter.&amp;quot;,&lt;br /&gt;
						i, i, i&lt;br /&gt;
					), demoCheck(args))&lt;br /&gt;
				else&lt;br /&gt;
					text = text .. &amp;quot; &amp;quot; .. showWarning(string.format(&lt;br /&gt;
						&amp;quot;Provided &amp;lt;code&amp;gt;title%s&amp;lt;/code&amp;gt; must also have a respective &amp;lt;code&amp;gt;year%s&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;date%s&amp;lt;/code&amp;gt; parameter.&amp;quot;,&lt;br /&gt;
						i, i, i&lt;br /&gt;
					))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			table.insert(citations, frame:expandTemplate{ title = &amp;quot;Citation&amp;quot;, args = {&lt;br /&gt;
				ref = &amp;quot;none&amp;quot;,&lt;br /&gt;
				author = author,&lt;br /&gt;
				authors = authors,&lt;br /&gt;
				[&amp;quot;display-authors&amp;quot;] = args[&amp;quot;display-authors&amp;quot; .. i] or (i == 1 and args[&amp;quot;display-authors&amp;quot;]),&lt;br /&gt;
				date = date,&lt;br /&gt;
				url = args[&amp;quot;url&amp;quot; .. i] or (i == 1 and args[&amp;quot;url&amp;quot;]),&lt;br /&gt;
				title = (args[&amp;quot;articlename&amp;quot; .. i] or (i == 1 and args[&amp;quot;articlename&amp;quot;]))&lt;br /&gt;
					or args[&amp;quot;title&amp;quot; .. i] or (i == 1 and args[&amp;quot;title&amp;quot;]),&lt;br /&gt;
				publisher = (args[&amp;quot;org&amp;quot; .. i] or (i == 1 and args[&amp;quot;org&amp;quot;]))&lt;br /&gt;
					or args[&amp;quot;publisher&amp;quot; .. i] or (i == 1 and args[&amp;quot;publisher&amp;quot;])&lt;br /&gt;
			} })&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	text = string.format(&lt;br /&gt;
		&amp;quot;%s article is substantially duplicated by a piece in an external publication. &amp;quot; ..&lt;br /&gt;
		&amp;quot;Please do not flag this article as a copyright violation of the following source&amp;quot;,&lt;br /&gt;
		text&lt;br /&gt;
	)&lt;br /&gt;
	local citationCount = #citations&lt;br /&gt;
	if citationCount == 0 then&lt;br /&gt;
		return showError(&lt;br /&gt;
			&amp;quot;No citations were provided. Provide at least one citation using &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;.&amp;quot;, &lt;br /&gt;
			demoCheck(args)&lt;br /&gt;
		)&lt;br /&gt;
	elseif citationCount &amp;gt; 1 then&lt;br /&gt;
		text = string.format(&amp;quot;%ss:&amp;quot;, text)&lt;br /&gt;
	else&lt;br /&gt;
		text = string.format(&amp;quot;%s:&amp;quot;, text)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local ul = mw.html.create(&amp;quot;ul&amp;quot;)&lt;br /&gt;
	for k, v in pairs(citations) do&lt;br /&gt;
		ul:node(mw.html.create(&amp;quot;li&amp;quot;):wikitext(v))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	text = string.format(&lt;br /&gt;
		&amp;quot;%s %s %s&amp;quot;,&lt;br /&gt;
		text,&lt;br /&gt;
		tostring(ul),&lt;br /&gt;
		args[&amp;quot;comments&amp;quot;] and tostring(&lt;br /&gt;
			mw.html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
				:attr(&amp;quot;class&amp;quot;, &amp;quot;mw-collapsible mw-collapsed&amp;quot;)&lt;br /&gt;
				:attr(&amp;quot;style&amp;quot;, &amp;quot;width:100%; background-color: #f8eaba;&amp;quot;)&lt;br /&gt;
				:node(mw.html.create(&amp;quot;tr&amp;quot;)&lt;br /&gt;
					:node(mw.html.create(&amp;quot;th&amp;quot;)&lt;br /&gt;
						:wikitext(&amp;quot;Additional comments&amp;quot;)&lt;br /&gt;
					)&lt;br /&gt;
				)&lt;br /&gt;
				:node(mw.html.create(&amp;quot;tr&amp;quot;):node(mw.html.create(&amp;quot;td&amp;quot;)&lt;br /&gt;
					:attr(&amp;quot;style&amp;quot;, &amp;quot;background-color: white; border: 1px solid #c0c090; padding: 0.25em 0.5em;&amp;quot;)&lt;br /&gt;
					:wikitext(&lt;br /&gt;
						args[&amp;quot;comments&amp;quot;]&lt;br /&gt;
					)&lt;br /&gt;
				))&lt;br /&gt;
		) or &amp;quot;&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
	&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderBanner(frame, args)&lt;br /&gt;
	return MessageBox.main(&amp;#039;tmbox&amp;#039;, {&lt;br /&gt;
		name = &amp;quot;backwards-copy&amp;quot;,&lt;br /&gt;
		small = yesno(args[&amp;quot;small&amp;quot;]),&lt;br /&gt;
		image = &amp;#039;[[File:Newspaper Cover.svg|50px]]&amp;#039;,&lt;br /&gt;
		text = bannerText(frame, args)&lt;br /&gt;
	}) .. ((demoCheck(args) or mw.title.getCurrentTitle().namespace == 10) and&lt;br /&gt;
		&amp;quot;&amp;quot; or &amp;quot;[[Category:Wikipedia article talk pages incorporating the backwardscopy template]]&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = true&lt;br /&gt;
	})&lt;br /&gt;
	return p.renderBanner(frame, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;MusikBot II</name></author>
	</entry>
</feed>