Jump to content

Module:Backwards copy

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chlod (talk | contribs) at 07:10, 16 August 2022 (starting module for Template:Backwards copy). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

local MessageBox = require("Module:Message box")
local yesno = require("Module:Yesno")

local p = {}

local function demoCheck(args)
	return yesno(args["demo"]) or yesno(args["nocat"])
end

local function showWarning(text, nocat)
	mw.addWarning(text)
	return nocat and "" or "[[Category:Pages with backwards copy warnings]]"
end

local function delink(text)
	if text == nil then
		return nil
	end
	mw.logObject(require("Module:Delink")._delink{text})
	return string.gsub(string.gsub(require("Module:Delink")._delink{text}, "%[%[", ""), "%]%]", "")
end

local function showError(text, nocat)
	return string.format(
		"%s%s %s",
		nocat and "" or "[[Category:Pages with backwards copy errors]] ",
		tostring(
			mw.html.create("span")
				:css("color", "red")
				:css("font-weight", "bold")
				:wikitext("Error:")
		),
		text
	)
end

local function row(args, i)
	return mw.html.create("li"):wikitext(rowText)
end

local function bannerText(args)
	local text = ""
	
	local id = args["id"] or args["revid"]
	if id ~= nil then
		text = string.format("Revisions succeeding [[%s|this version]] of this", text)
	else
		text = "This"
	end
	
	text = string.format(
		"%s article is substantially duplicated by a piece in an external publication. " ..
		"Please do not flag this article as a copyright violation of the following source",
		text
	)
	-- if count of citations > 1 then
	--     text = text .. "s"
	-- end
	
	local ul = mw.html.create("ul")
	
	text = text .. " " .. tostring(ul)
	
	return text
end

function p.renderBanner(args)
	return MessageBox.main('tmbox', {
		name = "backwards-copy",
		small = args["small"],
		image = '[[File:Newspaper Cover.svg|50px]]',
		text = bannerText(args)
	})
end

function p.main(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame, {
		trim = true,
		removeBlanks = true
	})
	return p.renderBanner(args)
end

return p