Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





Module:Effective protection expiry





Module  

Talk  



Language  

Watch  

View source  





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:

local effectiveProtectionExpiry = 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:

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

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( 'First parameter must be one of edit, move, create, upload, 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('internal error in Module:Effective protection expiry; malformed expiry timestamp')
  end
 end
end

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

return p

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Effective_protection_expiry&oldid=1073570341"
 



Last edited on 23 February 2022, at 10:59  


Languages

 


Afrikaans
Аԥсшәа
العربية
Արեւմտահայերէն
Авар
Azərbaycanca
تۆرکجه
Basa Bali

Беларуская

Bosanski
Буряад
Català
Cebuano
Corsu
Dansk
الدارجة
Ελληνικά
فارسی
Fulfulde
Gaeilge

گیلکی

  / Gõychi Konknni

Hawaiʻi
Հայերեն
Ilokano
Bahasa Indonesia
IsiZulu
Íslenska
עברית
Jawa

Kapampangan
Ikirundi
Kurdî
Ladin
Luganda
Madhurâ
ि
Македонски

Māori

مصرى
مازِرونی
Bahasa Melayu
Minangkabau
Мокшень
Монгол

Nederlands


Нохчийн
Oʻzbekcha / ўзбекча


پښتو
Português
Qaraqalpaqsha

Scots
Shqip

Simple English
سنڌي
Slovenščina
Soomaaliga
کوردی
Српски / srpski
Sunda
Tagalog
ி
Taqbaylit
 



Türkçe
Українська
اردو
Tiếng Vit
Winaray
Yorùbá


 

Wikipedia


This page was last edited on 23 February 2022, at 10:59 (UTC).

Content is available under CC BY-SA 4.0 unless otherwise noted.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Terms of Use

Desktop