This module provides a way to retrieve the expiry of a restriction over a given action on a page.
Usage
editarThis module will use up to 1 expensive parser function call each time it is ran. It will not use any if Módulo:Nível efetivo de proteção was already called.
From other modules
editarTo load this module:
local effectiveProtectionExpiry = require('Módulo:Expiração efetiva de proteção')._main
The function accepts two parameters. The first is a string containing the action to check, which must be one of "edit", "create", "move", "upload", or "autoreview". The second is optional, and can either be the name of the page to check, or a title returned from the mw.title functions. If the second parameter is omitted, the page being displayed is the one checked against.
The return value is either a date string in YY-MM-DDThh:mm:ss
format, or one of the following strings:
infinity
- for pages protected indefinitelyunknown
- for pages which are not protected or where the expiry is unknown
Note that if the page is not protected for the requested action, this will return 'infinity'. You need to check separately with Módulo:Nível efetivo de proteção.
See also
editarA documentação acima é transcluída de Módulo:Expiração efetiva de proteção/doc. (editar | histórico) Editores podem experimentar nas páginas de teste (criar | espelhar) e de exemplos para testes (criar) deste módulo. Subpáginas deste módulo. |
local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'O primeiro parâmetro deve ser um dos seguintes: edit, move, create, upload ou autoreview.', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('erro interno em Módulo:Expiração efetiva de proteção, timestamp expiração mal formado')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p