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

# パラメータ
Param($titleinfo)
# 例外が起きたらそこで止める
$ErrorActionPreference = "stop"
# Write-Verboseを記録する
$VerbosePreference = "continue"

try
{
    $result = $titleinfo.Clone()

    ##### カスタマイズスクリプトを読み込む(存在する場合)
    $customize = Join-Path (Split-Path $MyInvocation.MyCommand.Path -parent) "TitleInfo_Prepare_customize.ps1"

    if(Test-Path $customize)
    {
        . ($customize)
    }

    $result["genre"] = [string[]]@($result["genre"] | Where-Object { $_.Length -gt 0 })
    $result["cast"] = [string[]]@($result["cast"] | Where-Object { $_.Length -gt 0 })

    ## 情報の少ないタイトルの順位を下げる
    if($result["maker"].Length -eq 0)
    {
        $result["sortscore"] += 2;
    }

    if($result["label"].Length -eq 0)
    {
        $result["sortscore"] += 2;
    }

    if($result["series"].Length -eq 0)
    {
        $result["sortscore"] += 2;
    }

    if($result["genre"].Length -eq 0)
    {
        $result["sortscore"] += 3;
    }

    if($result["cast"].Length -eq 0)
    {
        $result["sortscore"] += 3;
    }

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

    $error[0] | Out-string | Write-Verbose
}

return $result
