มอดูล:Copied

local MessageBox = require('Module:Message box')
local p = {}
local function singleText(args)
	local from_oldid = args"from_oldid" or args"from_oldid1" or ""
	local from = args"from" or args"from1" or ""
	local to = args"to" or args"to1" or ""
	local date = args"date" or args"date1" or ""
	local afd = args"afd" or args"afd1" or ""
	local merge = args"merge" or args"merge1" or ""
	local text = "ข้อความและ/หรือเนื้อหาที่ถูกสร้างสรรค์จาก" 
	if not (from_oldid == "") then
		text = string.format("%s %s รุ่นนี้ของ", text, tostring(mw.uri.fullUrl(from, {oldid=from_oldid} )))
	end
	text = string.format("%s %s ",text,from)
	if (merge == "yes") or not (afd == "") then
		text = string.format("%sถูกรวมเข้ากับ",text)
	else 
		text = string.format("%sถูกคัดลอกหรือย้ายไปที่",text) 
	end 
	if (merge == "yes") and (to == "") then
		text = string.format("%s %s:%s ",text,mw.title.getCurrentTitle().nsText,mw.title.getCurrentTitle().text) --If no merge target given assume current page is the target
	else 
		text = string.format("%s %s ",text,to)
	end 
	local diff = args"diff" or args"diff1"
	local to_diff = args"to_diff" or args"to_diff1"
	local to_oldid = args"to_oldid" or args"to_oldid1" 
	if (diff) then
		text = string.format("%sด้วย%s การแก้ไขนี้ ",text,diff)
	elseif (to_oldid or to_diff) then
	local to_diff2 = args"to_diff" or args"to_diff1" or "prev"
	local to_oldid2 = args"to_oldid" or args"to_oldid1" or ""
		text = string.format("%sด้วย%s การแก้ไขนี้ ",text,tostring(mw.uri.fullUrl(to, {diff=to_diff or "prev", oldid = to_oldid or ""} )))
	end
	if not (date == "") then
		text = string.format("%sเมื่อ %s ",text,date)
	end
	text = string.format("%s %s ประวัติหน้าถูกคงไว้สำหรับให้การแสดงแหล่งที่มาในเนื้อหาที่ถูกคัดลอกหรือย้ายไปและต้องไม่ถูกลบตราบเท่าที่ยังมีหน้าปลายทางของเนื้อหาอยู่",text,tostring(mw.uri.fullUrl(from,{action="history"}) or ""))
	return text
end
local function row(args, i)
	local text = ""
	local afd = args"afd" .. i
	if (afd or args"merge" .. i) then
		text = string.format("%s\n*รวมเข้า",text)
	else 
		text = string.format("%s\n*คัดลอก",text)
	end
	local from = args"from" .. i or ""
	text = string.format("%s %s %s (",text,tostring(mw.uri.fullUrl(from, {redirect = "no"} )),from)
	local from_oldid = args"from_oldid" .. i
	if (from_oldid) then
		text = string.format("%sจาก%s รหัสรุ่น, ",text,tostring(mw.uri.fullUrl(from, {oldid = from_oldid} )))
	end
	
	local to = args"to".. i or ""
	text = string.format("%s%s ประวัติ) → %s",text,tostring(mw.uri.fullUrl(from, {action = "history"} )), to)
	
	local diff = args"diff" .. i
	if (diff) then
		text = string.format("%s (%s ต่าง)",text,diff)
	elseif (args"to_oldid" .. i or args"to_diff".. i) then
		local to_diff = args"to_diff".. i or "prev"
		local to_oldid = args"to_oldid" .. i or ""
		text = string.format("%s (%s ต่าง)",text,tostring(mw.uri.fullUrl(to, {diff=to_diff, oldid = to_oldid} )))
	end
	local date = args"date" .. i
	if (date) then
		text = string.format("%s เมื่อ %s",text,date)
	end
	if (not (args"to_oldid" .. i or args"to_diff".. i)) then
		text = string.format("%sหมวดหมู่:หน้าวิกิพีเดียที่ใช้แม่แบบ copied โดยไม่ใส่รหัสรุ่น",text)
	end
	
	return text
end
local function list(args)
	local text = ""
	local from1 = args"from1"
	if (from1) then --Support from1 and from in case of multiple rows
		text = string.format("%s%s",text,row(args, 1))
	else
		text = string.format("%s%s",text,row(args, ""))
	end
	local i = 2
	while i > 0 do
		if (args"from" .. i) then 
			text = string.format("%s%s",text,row(args, i))
			i = i + 1 --Check if from(i+1) exist
		else
			i = - 1 --Break if fromi doesn't exist
		end
	end
	return text
end
	
local function multiText(args)
	local pageType
	if (mw.title.getCurrentTitle():inNamespace(0)) then
		pageType = "บทความ"
	else
		pageType = "หน้า"
	end
	
	local historyList = list(args)
	if (args"collapse" == 'yes') then
		local collapsedText = '\nหน้าถูกคัดลอกมา:\n %s '
		historyList = string.format(collapsedText, historyList)
	end
	local text = "ข้อความถูกคัดลอกไปหรือคัดลอกมาจาก%sนี้ ดูรายการด้านล่าง หน้าต้นที่ถูกย้ายถูกเก็บไว้สำหรับให้การแสดงแหล่งที่มา และห้ามทำการลบจนกว่าหน้าที่คัดลอกเนื้อหาไปยังคงอยู่ สำหรับการดูผู้สร้างสรรค์หรือแก้ไขก่อนหน้ากรุณากดดูที่ลิงก์ประวัติด้านล่าง %s"
	text = string.format(text, pageType, historyList)
	return text
end
local function BannerText(args)
	--Checks if there are multiple rows
	local text
	local from2 = args"from2"
	if (from2) then
		text = multiText(args)
	elseif (not from2) then
		text = singleText(args)
	end
	return text
end
local function renderBanner(args)
	return MessageBox.main('tmbox', {
		small = args"small",
		image = 'alt=',
		text = BannerText(args)
	})
end
local function categories(args)
	local to_oldid = args"to_oldid" or args"to_diff" or args"diff"
	local from_oldid = args"from_oldid"
	local text = "" 
	if ((not from_oldid) or (not to_oldid)) then
		text = string.format("%sหมวดหมู่:หน้าวิกิพีเดียที่ใช้แม่แบบ copied โดยไม่ใส่รหัสรุ่น",text)
	end
	return text
end
function p.main(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	return renderBanner(args) .. categories(args)
end
return p