You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.7 KiB

--imports
local WIM = WIM;
local _G = _G;
local time = time;
local date = date;
--set namespace
setfenv(1, WIM);
local TimeStamps = WIM.CreateModule("TimeStamps", true);
-- define available timeStamps
local formats = {
"%I:%M", -- HH:MM (12hr)
"%I:%M %p", -- HH:MM AM/PM (12hr)
"%H:%M", -- HH:MM (24hr)
"%I:%M:%S", -- HH:MM:SS (12hr)
"%I:%M:%S %p",-- HH:MM:SS AM/PM (12hr)
"%H:%M:%S" -- HH:MM:SS (24hr)
};
db_defaults.timeStampFormat = formats[3];
local function addTimeStamp(msg, chatDisplay)
return GetTimeStamp(nil, chatDisplay).." "..msg;
end
function TimeStamps:OnEnable()
RegisterStringModifier(addTimeStamp);
end
function TimeStamps:OnDisable()
UnregisterStringModifier(addTimeStamp);
end
function TimeStamps:OnWindowDestroyed(win)
win.lastDate = nil;
end
-- Global
function GetTimeStamp(cTime, chatDisplay)
local win = chatDisplay and chatDisplay.parentWindow or chatDisplay;
cTime = cTime or (win and win.nextStamp) or time();
local cDate = _G.date(L["_DateFormat"], cTime);
local color = win and win.nextStampColor or db.displayColors.sysMsg;
if(win and win.lastDate ~= cDate) then
chatDisplay:AddMessage(" ");
chatDisplay:AddMessage("["..cDate.."]", color.r, color.g, color.b);
end
4 years ago
local stamp = "|cff"..RGBPercentToHex(color.r, color.g, color.b)..date(db.timeStampFormat, cTime).."|r";
if(win) then
win.lastDate = cDate;
win.nextChatDisplay = nil;
win.nextStamp = nil;
win.nextStampColor = nil;
end
return stamp;
end
function GetTimeStampFormats()
return formats;
end