Jump to content
Wikipedia The Free Encyclopedia

Module:Effective protection expiry

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing.
Page protected This module is currently protected from editing.
See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected.
Warning This Lua module is used on approximately 67,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.

This module provides a way to retrieve the expiry of a restriction over a given action on a page.

Usage

This module will use up to 1 expensive parser function call each time it is ran. It will not use any if Module:Effective protection level was already called.

From other modules

To load this module:

localeffectiveProtectionExpiry=require('Module:Effective protection expiry')._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 indefinitely, or pages which exist and are not protected
  • unknown - for pages where the expiry is unknown, or pages which do not exist and are not protected

Note that if an existing page is not protected for the requested action, this will return 'infinity'. You need to check separately with Module:Effective protection level.

From wikitext

The parameters are the same as when it is called directly.

{{#invoke:Effective protection expiry|action|title}}

See also

The above documentation is transcluded from Module:Effective protection expiry/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.

 localp={}

 -- 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.
 functionp._main(action,pagename)
 localtitle
 iftype(pagename)=='table'andpagename.prefixedTextthen
 title=pagename
 elseifpagenamethen
 title=mw.title.new(pagename)
 else
 title=mw.title.getCurrentTitle()
 end
 pagename=title.prefixedText
 ifaction=='autoreview'then
 localstabilitySettings=mw.ext.FlaggedRevs.getStabilitySettings(title)
 returnstabilitySettingsandstabilitySettings.expiryor'unknown'
 elseifaction~='edit'andaction~='move'andaction~='create'andaction~='upload'then
 error('First parameter must be one of edit, move, create, upload, autoreview',2)
 end
 localrawExpiry=mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY',action,pagename)
 ifrawExpiry=='infinity'then
 return'infinity'
 elseifrawExpiry==''then
 return'unknown'
 else
 localyear,month,day,hour,minute,second=rawExpiry:match(
 '^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
 )
 ifyearthen
 returnstring.format(
 '%s-%s-%sT%s:%s:%s',
 year,month,day,hour,minute,second
 )
 else
 error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
 end
 end
 end

 setmetatable(p,{__index=function(t,k)
 returnfunction(frame)
 returnt._main(k,frame.args[1])
 end
 end})

 returnp

AltStyle によって変換されたページ (->オリジナル) /