Khác biệt giữa bản sửa đổi của “Mô đun:Status”

Nội dung được xóa Nội dung được thêm vào
nKhông có tóm lược sửa đổi
nKhông có tóm lược sửa đổi
Dòng 1:
-- Initialise necessary modules and objects
local configsObject = require('Module:Status/configClassic')
local lang = mw.language.getContentLanguage()
 
local configs = require('Module:Status/config')
-- Set maxTimeconstants
local CONFIG_MODULE = 'Module:Status/config'
 
--------------------------------------------------------------------------------
-- Helper functionsclass
--------------------------------------------------------------------------------
 
local functionHelper validateDate= Object:extend(dateString)
 
function Helper:validateDate(dateString)
lang = lang or mw.language.getContentLanguage()
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
Hàng 18 ⟶ 24:
end
 
local function Helper:isUnixTime(dateString)
local success, result = pcall(os.date, '!%Y-%m-%dT%TZ', dateString)
if success then
Hàng 26 ⟶ 32:
end
 
local function Helper:formatDate(dateString, format)
lang = lang or mw.language.getContentLanguage()
if Helper:isUnixTime(dateString) then
if format == 'U' then
return dateString
Hàng 34 ⟶ 40:
return lang:formatDate(format, os.date('!%Y-%m-%dT%TZ', dateString))
end
if Helper:validateDate(dateString) then
return lang:formatDate(format, dateString)
end
end
 
local function Helper:substParams(msg, params)
return msg:gsub('${(%u+)}', params)
end
 
local function Helper:dayToSecond(dayNumber)
return tonumber(dayNumber) * 24 * 3600
end
Hàng 51 ⟶ 57:
--------------------------------------------------------------------------------
 
local Status = {}Object:extend()
Status.__index = Status
 
function Status.:new(args, cfg)
local objself.cfg = {}cfg
obj.cfg = cfg
 
-- Set startTime
if args.start and mw.text.trim(args.start) ~= '' then
objself.startTime = tonumber(Helper:formatDate(args.start, 'U'))
else
error('phải có tham số start và start không rỗng')
end
-- Set maxTime
obj.maxTime = obj.startTime + dayToSecond(tonumber(args.max) or cfg.DEFAULT_MAX)
 
-- Set maxTime
return setmetatable(obj, Status)
objself.maxTime = objself.startTime + Helper:dayToSecond(tonumber(args.max) or cfg.DEFAULT_MAX)
end
 
Hàng 89 ⟶ 91:
local params = {}
 
params.MAXTIME = Helper:formatDate(self.maxTime, 'H:i:s d-m-Y')
params.COUNTDOWN = lang:getDurationIntervals(self.maxTime - now).days
 
Hàng 102 ⟶ 104:
:addClass(self.cfg.statuses[statusName].class)
:attr('title',
Helper:substParams(self.cfg.statuses[statusName]
.titles[titleIndex], self:getParams()))
 
Hàng 123 ⟶ 125:
function p._main(args, cfg)
args = args or {}
cfg = cfg or configsrequire(CONFIG_MODULE)
local statusObj = Status.new(args, cfg)
return statusObj:makeSpan()
end
Hàng 130 ⟶ 132:
function p.main(frame)
local args = frame.args
local cfg = configsrequire(CONFIG_MODULE)
return frame:extensionTag{ name = 'nowiki', content = p._main(args, cfg) }
end