Mô đun: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 = "Văn bản và/hoặc các sáng tạo nội dung từ"
if not (from_oldid == "") then
text = string.format("%s [%s phiên bản này] của", 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 đã được hợp thành",text)
else
text = string.format("%s đã được sao chép hoặc di chuyển sang",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 với [%s thay đổi này]",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 với [%s thay đổi này]",text,tostring(mw.uri.fullUrl(to, {diff=to_diff or "prev", oldid = to_oldid or ""} )))
end
if not (date == "") then
text = string.format("%s vào hồi %s",text,date)
end
if not (afd == "") then
if (mw.ustring.match(afd, "Wikipedia:", 1 )) then --If no venue is given add AfD prefix
text = string.format("%s sau khi bị biểu quyết xóa",text,afd)
else
text = string.format("%s sau khi bị biểu quyết xóa",text,afd)
end
end
text = string.format("%s.",text) -- Finish first sentance
text = string.format("%s [%s Lịch sử] trang cũ giờ đây phục vụ mục đích ghi công đóng góp tại trang sau, và không thể được xóa chừng nào trang sau còn tồn tại.",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\nMerged",text)
else
text = string.format("%s\nCopied",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 oldid], ",text,tostring(mw.uri.fullUrl(from, {oldid = from_oldid} )))
end

local to = args["to".. i] or ""
text = string.format("%s[%s history]) → %s",text,tostring(mw.uri.fullUrl(from, {action = "history"} )), to)

local diff = args["diff" .. i]
if (diff) then
text = string.format("%s ([%s diff])",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 diff])",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 on %s",text,date)
end

if (afd) then
if (mw.ustring.match(afd, "Wikipedia:", 1 )) then --If no venue is given add AfD prefix
text = string.format("%s after being nominated for deletion",text,afd)
else
text = string.format("%s after being nominated for deletion",text,afd)
end
end
if (not (args["to_oldid" .. i] or args["to_diff".. i])) then
text = string.format("%s",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 = "article"
else
pageType = "page"
end

local historyList = list(args)
if (args["collapse"] == 'yes') then
local collapsedText = '\nCopied pages:\n %s '
historyList = string.format(collapsedText, historyList)
end

local text = "Text has been copied to or from this %s; see the list below. The source pages now serve to provide attribution for the content in the destination pages and must not be deleted so long as the copies exist. For attribution and to access older versions of the copied text, please see the history links below. %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 = ,
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",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