モジュール: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