# マッチしたタイトル情報に対するサイト固有の事前処理
#   titleinfoは連想配列になっている。
#   特定のサイトで検索結果に対して一律に加えたい変更などがあればここに記述する。

# 変えてはならない
Param($titleinfo)

try
{
    $result = $titleinfo.Clone()

# ======== 以下、カスタマイズポイント

    ######## DMM: 型番対策
    $siteproductcode = [regex]::Unescape($result["productcode"])
    # アンダーバー(_)が含まれている場合はそこまでを削除(xxx_12yyy00345zz → 12yyy00345zz)
    $siteproductcode = $siteproductcode -replace '^[A-Za-z]+_',''

    # 末尾にアルファベットが含まれている場合、それを削除(12yyy00345zz → 12yyy00345)
    $siteproductcode = $siteproductcode -replace '[A-Za-z]+$',''
    
    if($siteproductcode -notmatch "^[0-9]+$")
    {
        # 数字だけじゃない場合にのみ処理する

        # 先頭の数字を削除(12yyy00345 → yyy00345)
        $siteproductcode = $siteproductcode -replace '^[0-9]+',''

        # 下3桁の数字を残し0を削除。ただし下3桁目より前が0じゃない場合は残す(yyy00345 → yyy345)
        $siteproductcode = $siteproductcode -replace '([A-Za-z]+)0+([0-9]{3})','$1$2'
    }
    $result["productcode"] = $siteproductcode

    ######## DMM: 同一タイトルの優先順位づけ
    ## キャンペーンなどの順位を大きく下げる
    if($result["title"] -match "[(（][BD]OD[）)]")
    {
        $result["sortscore"] += 20;
    }

    if($result["title"].Contains("ベストヒッツ"))
    {
        $result["sortscore"] += 20;
    }

    if($result["title"].Contains("アウトレット"))
    {
        $result["sortscore"] += 20;
    }

    if($result["title"].Contains("ブルーレイ"))
    {
        $result["sortscore"] += 15;
    }

    if($result["title"].Contains("限定"))
    {
        $result["sortscore"] += 15;
    }

    # レンタルはソート順位を下げる
    if($result["url"].Contains("/rental/"))
    {
        $result["sortscore"] += 1;
    }



    ######## その他なにかあればここに記述


# ======== カスタマイズポイント 終わり
# 変えてはならない

}
catch
{
    # 例外を起こしたら元に戻す
    $result = $titleinfo.Clone()
}

return $result
