(Translated by https://www.hiragana.jp/)
モジュール:Effective protection expiry - Wikipedia

ページにたいする特定とくてい操作そうさ制限せいげん(いわゆる保護ほご)の有効ゆうこう期限きげん取得しゅとくするためのモジュールです。

使つかかた

このモジュールはされるごとこう負荷ふかパーサー関数かんすうを1かいまでします。すでにモジュール:Effective protection levelしている場合ばあいこう負荷ふかパーサー関数かんすうしません。

ほかのモジュールからの利用りよう

下記かきのようにモジュールをしてください。

local effectiveProtectionExpiry = require('モジュール:Effective protection expiry')._main

この関数かんすう引数ひきすうを2つ使用しようします。だい1引数ひきすうはページにたいする操作そうさ("edit"、"create"、"move"、"upload"、"autoreview"のどれか)を指定していします。だい2引数ひきすう操作そうさおこなうページめい指定していします。だい2引数ひきすう省略しょうりゃくした場合ばあい、モジュールがされたページのページめい使用しようされます。

この関数かんすうもど有効ゆうこう期限きげんのタイムスタンプ(書式しょしきYY-MM-DDThh:mm:ss)の文字もじれつです。ただし、下記かき例外れいがいがあります。

  • infinity - 期限きげん保護ほご場合ばあいか、保護ほごされていないページ(ページが存在そんざいする場合ばあい
  • unknown - 有効ゆうこう期限きげん不明ふめい場合ばあい保護ほごされていないページ(ページが存在そんざいしない場合ばあい

ページが存在そんざいし、かつ保護ほごされていない場合ばあいinfinityかえすので、一般いっぱんてきには保護ほごレベルを調しらべるモジュール:Effective protection level併用へいようします。

ウィキテキストからの利用りよう

下記かきのようにします。引数ひきすうはモジュールから場合ばあいおなじです。

関連かんれん項目こうもく

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( 'だい1引数ひきすうには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('[[モジュール:Effective protection expiry]]のエラー; 有効ゆうこう期限きげんのタイムスタンプの書式しょしき不正ふせいです')
		end
	end
end

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

return p