モジュール:ShopButtons
提供:エンタメデータベースWiki
このモジュールについての説明文ページを モジュール:ShopButtons/doc に作成できます
local p = {}
-- ショップ名とボタンクラスの対応テーブル
local shop_classes = {
-- カートボタン
["Amazon"] = "cart_button",
["楽天"] = "cart_button",
-- アプリボタン
["Apple"] = "appli_button",
["Google"] = "appli_button",
["HUAWEI"] = "appli_button",
-- ゲームボタン
["Nintendo"] = "game_button",
["PlayStation"] = "game_button",
-- PCボタン
["Microsoft"] = "pc_button",
["Steam"] = "pc_button",
["DMM"] = "pc_button",
["Epic"] = "pc_button",
["ベクター"] = "pc_button",
-- ショップボタン
["DL"] = "shop_button",
["セブンネット"] = "shop_button",
["Yahoo"] = "shop_button",
["e-STORE"] = "shop_button",
["e-CAPCOM"] = "shop_button",
["プレミアムバンダイ"] = "shop_button",
["タカラトミー"] = "shop_button",
["アニメイト"] = "shop_button",
["ゲオ"] = "shop_button",
["ツタヤ"] = "shop_button",
["ヤマダ"] = "shop_button",
["ソフマップ"] = "shop_button",
["ブックオフ"] = "shop_button",
["ネットオフ"] = "shop_button",
["キャラアニ"] = "shop_button",
["Neowing"] = "shop_button",
["あみあみ"] = "shop_button",
["HMV"] = "shop_button",
["駿河屋"] = "shop_button",
["au"] = "shop_button",
["eeo"] = "shop_button",
["ホビーサーチ"] = "shop_button",
["紀伊國屋"] = "shop_button",
["ノジマ"] = "shop_button",
["ゲーマーズ"] = "shop_button",
-- その他ボタン
["一番くじ"] = "etc_button",
["U-NEXT"] = "etc_button",
["Hulu"] = "etc_button",
["ABEMA"] = "etc_button",
["レコチョク"] = "etc_button",
["タワレコ"] = "etc_button",
["ネトフリ"] = "etc_button",
["スカパー"] = "etc_button",
["Fujisan"] = "etc_button"
}
-- ショップパラメータと表示名の対応
local shop_display_names = {
["Amazon"] = "Amazon",
["楽天"] = "楽天",
["Apple"] = "Apple",
["Google"] = "Google",
["HUAWEI"] = "HUAWEI",
["Nintendo"] = "Nintendo",
["PlayStation"] = "PlayStation",
["Microsoft"] = "Microsoft",
["Steam"] = "Steam",
["DMM"] = "DMM",
["Epic"] = "Epic",
["ベクター"] = "ベクター",
["DL"] = "DL",
["セブンネット"] = "セブンネット",
["Yahoo"] = "Yahoo!",
["e-STORE"] = "e-STORE",
["e-CAPCOM"] = "e-CAPCOM",
["プレミアムバンダイ"] = "プレミアムバンダイ",
["タカラトミー"] = "タカラトミー",
["アニメイト"] = "アニメイト",
["ゲオ"] = "ゲオ",
["ツタヤ"] = "ツタヤ",
["ヤマダ"] = "ヤマダ",
["ソフマップ"] = "ソフマップ",
["ブックオフ"] = "ブックオフ",
["ネットオフ"] = "ネットオフ",
["キャラアニ"] = "キャラアニ",
["Neowing"] = "Neowing",
["あみあみ"] = "あみあみ",
["HMV"] = "HMV",
["駿河屋"] = "駿河屋",
["au"] = "au",
["eeo"] = "eeo",
["ホビーサーチ"] = "ホビーサーチ",
["紀伊國屋"] = "紀伊國屋",
["ノジマ"] = "ノジマ",
["ゲーマーズ"] = "ゲーマーズ",
["一番くじ"] = "一番くじ",
["U-NEXT"] = "U-NEXT",
["Hulu"] = "Hulu",
["ABEMA"] = "ABEMA",
["レコチョク"] = "レコチョク",
["タワレコ"] = "タワレコ",
["ネトフリ"] = "Netflix",
["スカパー"] = "スカパー",
["Fujisan"] = "Fujisan"
}
function p.processAllShops(frame)
local args = frame:getParent().args
if not args then return "" end
local output = {}
-- テンプレートから渡される全引数を処理
for param, url in pairs(args) do
-- パラメータが shop_display_names に定義されているショップの場合のみ処理
if shop_display_names[param] and url and url ~= "" then
local display_name = shop_display_names[param]
local class_name = shop_classes[display_name] or "shop_button"
-- URLとショップ名をリンクとして整形
table.insert(output, string.format('<div class="%s">[%s %s]</div>',
class_name,
url,
display_name
))
end
end
-- 結果を結合して返す
return table.concat(output, "\n")
end
return p