모듈:Unsigned
이 모듈에 대한 설명문서는 모듈:Unsigned/설명문서에서 만들 수 있습니다
local p = {}
local function endswith(String, End)
return End == '' or string.sub(String,-string.len(End)) == End
end
local function trim(s)
return s:gsub("^%s+", ""):gsub("%s+$", ""):gsub("\226\128\142", "")
end
local function addKstToStringIfItDoesNotEndWithKst(s)
if s == "" or endswith(s, "~~~~") then return s end
if not endswith(s, "(KST)") then
return s .. " (KST)"
end
return s
end
local function getDay(s)
return s:gsub("Mon", "월"):gsub("Tue", "화"):gsub("Wed", "수")
:gsub("Thu", "목"):gsub("Fri", "금"):gsub("Sat", "토")
:gsub("Sun", "일")
end
local function getCurrentKstTime()
local ksttime = os.time() + 9 * 60 * 60
return os.date('%Y년 ', ksttime)
.. os.date('%m월 ', ksttime):gsub("^0+", "")
.. os.date('%d일 ', ksttime):gsub("^0+", "")
.. '(' .. getDay(os.date('%a'), ksttime) .. ') '
.. os.date('%H:%M (KST)', ksttime)
end
local function _main(args)
local ret = '<span class="autosigned" style="font-size:85%;">— '
local signpattern = "^%d+년%s+%d+월%s+%d+일"
local defaultuser = "아무개"
local username = ""
local date = ""
local delim = " "
if args[1]:match(signpattern) then
if args[2]:match(signpattern) then
return '<span class="autosigned" style="color:red; ' ..
'font-size:85%;">서명 오류: 두 변수에 날짜가 ' ..
'모두 올 수 없습니다.</span>'
end
if args[1]:match(delim) then
username = args[1]:gsub("^.*" .. delim, "")
date = args[1]:gsub(delim .. ".*", "")
else
username = args[2]
date = args[1]
end
elseif args[2]:match(signpattern) then
username = args[1]
date = args[2]
else
if args[1] and args[1]:match("%S") then
username = args[1]
elseif args[2] and args[2]:match("%S") then
username = args[2]
end
end
if not username or not username:match("%S") then
username = defaultuser
end
ret = ret .. "이 의견은 [[사용자:" .. username .. "|"
.. username .. "]]님이 "
if date and date:match("%S") then
ret = ret .. addKstToStringIfItDoesNotEndWithKst(trim(date)) .. "에 "
end
ret = ret .. "작성하였으나, 서명을 하지 않아 "
.. getCurrentKstTime() .. "에 다른 사용자가 추가하였습니다. "
.. "의견을 남길 때에는 항상 의견 끝에 띄어쓰기를 하고 "
.. "<code>--~~~~</code>를 입력해 주세요. "
.. "저장할 때 자동으로 서명이 됩니다."
ret = ret .. "</span>"
return ret
end
function p.main(frame)
local args
if type(frame.args) == 'table' then
args = frame.args
else
args = frame
end
return _main(args)
end
return p