モジュール:81プロフィール

モジュールの解説[表示] [編集] [履歴] [キャッシュを破棄]

このモジュールはTemplate:81プロフィールの内部で使用されています。

使い方[編集]

書式[編集]

{{#invoke:81プロフィール|getid|ページ名}}

Template:81プロフィール/一覧を読み込んだ上で与えられたページ名にリンクしている項目を検索します。合致するリンクが見つかった場合は81プロデュースの公式サイトにある声優のプロフィールのURLを生成して返します。見つからなかった場合はエラーメッセージを返します。

ページ名の指定を省略した場合は、代わりに現在のページ名(サブページ名)で検索を行います。

local listpage = 'Template:81プロフィール/一覧'
local urlFormat = 'https://www.81produce.co.jp/actor_search/index.php/item?id=%s'
local yesno = require('モジュール:Yesno')

local function getId(title, frame)
	local count = 0
	local text = frame:expandTemplate{ title = listpage }
	for linktitle in text:gmatch('%[%[(.-)[%]|]') do
		count = count + 1
		if title == linktitle then
			return urlFormat:format(count), title
		end
	end
end

local function main(frame)
	local title = mw.text.trim(frame.args[1] or '')
	if title == '' then
		title = mw.title.getCurrentTitle().subpageText
	end
	
	local url = getId(title, frame)
	if not url then
		return ''	-- 'IDの取得に失敗'
	elseif yesno(frame.args.plainurl) then
		return url
	end
	
	local label = mw.text.trim(frame.args[2] or '')
	if label == '' then
		label = title
	end
	label = label:gsub('[ _]%(.-%)$', '')
	return string.format('[%s %s] - [[81プロデュース]]の公式サイト', url, label)
end
		
return { main = main }