편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
132번째 줄: | 132번째 줄: | ||
elseif effectiveExpiry ~= 'unknown' then | elseif effectiveExpiry ~= 'unknown' then | ||
obj.expiry = validateDate(effectiveExpiry, 'expiry date') | obj.expiry = validateDate(effectiveExpiry, 'expiry date') | ||
elseif args.expiry then | |||
if cfg.indefStrings[args.expiry] then | |||
obj.expiry = 'indef' | |||
elseif type(args.expiry) == 'number' then | |||
obj.expiry = args.expiry | |||
else | |||
obj.expiry = validateDate(args.expiry, 'expiry date') | |||
end | |||
end | end | ||
169번째 줄: | 177번째 줄: | ||
end | end | ||
return setmetatable(obj, Protection) | return setmetatable(obj, Protection) | ||
end | end | ||
182번째 줄: | 182번째 줄: | ||
return self.level ~= '*' | return self.level ~= '*' | ||
end | end | ||
function Protection:isTemporary() | function Protection:isTemporary() | ||
196번째 줄: | 188번째 줄: | ||
function Protection:makeProtectionCategory() | function Protection:makeProtectionCategory() | ||
if not self: | local cfg = self._cfg | ||
local title = self.title | |||
-- Exit if the page is not protected. | |||
if not self:isProtected() then | |||
return '' | return '' | ||
end | end | ||
-- Get the expiry key fragment. | -- Get the expiry key fragment. | ||
216번째 줄: | 209번째 줄: | ||
namespaceFragment = 'talk' | namespaceFragment = 'talk' | ||
end | end | ||
-- Define the order that key fragments are tested in. This is done with an | -- Define the order that key fragments are tested in. This is done with an | ||
-- array of tables containing the value to be tested, along with its | -- array of tables containing the value to be tested, along with its | ||
320번째 줄: | 313번째 줄: | ||
end | end | ||
return '' | return '' | ||
end | |||
function Protection:needsExpiry() | |||
local cfg = self._cfg | |||
local actionNeedsCheck = cfg.expiryCheckActions[self.action] | |||
return not self.expiry and ( | |||
actionNeedsCheck or ( | |||
actionNeedsCheck == nil | |||
and self.reason -- the old {{pp-protected}} didn't check for expiry | |||
and not cfg.reasonsWithoutExpiryCheck[self.reason] | |||
) | |||
) | |||
end | end | ||
function Protection:isIncorrect() | function Protection:isIncorrect() | ||
local expiry = self.expiry | local expiry = self.expiry | ||
return not self: | return not self:isProtected() | ||
or type(expiry) == 'number' and expiry < os.time() | or type(expiry) == 'number' and expiry < os.time() | ||
end | end | ||
339번째 줄: | 344번째 줄: | ||
function Protection:makeCategoryLinks() | function Protection:makeCategoryLinks() | ||
local msg = self._cfg.msg | local msg = self._cfg.msg | ||
local ret = {self:makeProtectionCategory()} | local ret = { self:makeProtectionCategory() } | ||
if self:needsExpiry() then | |||
ret[#ret + 1] = makeCategoryLink( | |||
msg['tracking-category-expiry'], | |||
self.title.text | |||
) | |||
end | |||
if self:isIncorrect() then | if self:isIncorrect() then | ||
ret[#ret + 1] = makeCategoryLink( | ret[#ret + 1] = makeCategoryLink( | ||
652번째 줄: | 663번째 줄: | ||
function Blurb:_makeVandalTemplateParameter() | function Blurb:_makeVandalTemplateParameter() | ||
return | return require('Module:Vandal-m')._main{ | ||
self._args.user or self._protectionObj.title.baseText | |||
} | } | ||
end | end | ||
843번째 줄: | 853번째 줄: | ||
-- protection from some other action, then don't bother displaying anything | -- protection from some other action, then don't bother displaying anything | ||
-- for the other action (except categories). | -- for the other action (except categories). | ||
if | if protectionObj.action == 'edit' or | ||
args.demolevel or | args.demolevel or | ||
not getReachableNodes( | not getReachableNodes( | ||
cfg.hierarchy, | cfg.hierarchy, | ||
protectionObj.level | protectionObj.level | ||
)[effectiveProtectionLevel('edit', protectionObj.title)] | )[effectiveProtectionLevel('edit', protectionObj.title)] | ||
then | then | ||
-- Initialise the blurb object | -- Initialise the blurb object | ||
854번째 줄: | 864번째 줄: | ||
-- Render the banner | -- Render the banner | ||
if protectionObj: | if protectionObj:isProtected() then | ||
ret[#ret + 1] = tostring( | ret[#ret + 1] = tostring( | ||
(yesno(args.small) and Padlock or Banner) | (yesno(args.small) and Padlock or Banner) |