Module:Effective protection expiry
- Afrikaans
- Аԥсшәа
- العربية
- Արեւմտահայերէն
- Asturianu
- Авар
- Azərbaycanca
- تۆرکجه
- Basa Bali
- বাংলা
- Беларуская
- Беларуская (тарашкевіца)
- भोजपुरी
- Bosanski
- Буряад
- Català
- Cebuano
- Corsu
- Dansk
- الدارجة
- Ελληνικά
- فارسی
- Fulfulde
- Gaeilge
- 贛語
- گیلکی
- ગુજરાતી
- गोंयची कोंकणी / Gõychi Konknni
- 한국어
- Hausa
- Hawaiʻi
- Հայերեն
- Ilokano
- Bahasa Indonesia
- IsiZulu
- Íslenska
- עברית
- Jawa
- ಕನ್ನಡ
- Kapampangan
- Ikirundi
- Kurdî
- Ladin
- Latina
- Luganda
- Madhurâ
- मैथिली
- Македонски
- മലയാളം
- Māori
- मराठी
- مصرى
- مازِرونی
- Bahasa Melayu
- Minangkabau
- Мокшень
- Монгол
- မြန်မာဘာသာ
- Nederlands
- नेपाली
- 日本語
- Нохчийн
- Oʻzbekcha / ўзбекча
- ਪੰਜਾਬੀ
- ပအိုဝ်ႏဘာႏသာႏ
- پښتو
- Português
- Qaraqalpaqsha
- संस्कृतम्
- Scots
- Shqip
- සිංහල
- Simple English
- سنڌي
- Slovenščina
- Soomaaliga
- کوردی
- Српски / srpski
- Sunda
- Suomi
- Tagalog
- தமிழ்
- Taqbaylit
- တႆး
- తెలుగు
- ไทย
- ತುಳು
- Türkçe
- Українська
- اردو
- Tiếng Việt
- Winaray
- Yorùbá
- 粵語
- 中文
- Kumoring
- Руски
- ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ
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.
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 protectedunknown
- 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
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