;このファイルはサンプルです。
;altscript.dllの設定ファイルの記述例です。

[generic]

;サイトの名称。画面上のボタンの名称として使用。
SiteName=サイト名
;最初のURL。年齢認証の画面を出すことができるページであること。
TopPage=http://xxxxx.xxxxxxx.xxx
;文字コード。C#で解釈できる表記(EUC-JP, Shift_JIS)であること。指定なければUTF-8
PageEncoding=EUC-JP

;年齢認証のはい/YESのURLを抽出するための正規表現。検出された最初のURLに変遷することで認証を通す。
AgeCheckURL=href="([^"]*?agecheck[^"]*?)"

;サイト固有の型番生成を行うPowerShellスクリプトのファイル名
ProductCodePrepareScript=ASite_ProductCodePrepare.ps1
;サイト固有のタイトル情報処理を行うPowerShellスクリプトのファイル名
;ハッシュテーブル「$titleinfo」に、後述のキーを持つ値が渡されるので、
;ハッシュテーブル「$result」に、変更後の情報を格納して返す。
; PowerShell固有のキー
;   sortscore      : ソート順の重み。大きいほど後ろになる。
TitleInfoPrepareScript=ASite_TitleInfo_Prepare.ps1

;型番1つを検索するごとにHTTPクライアントを初期化する。
InitializeEachModelno=0

;===== 検索URL。{PRODUCTCODE}は検索対象の型番に置き換えられる。
;      複数定義した場合はすべて実行される。
;      値名は任意だが数字を推奨、名前にかかわらず記述順。
[search]
; 検索URL1
1=http://xxxxx.xxxxxxx.xxx?q1={PRODUCTCODE}
; 検索URL2
2=http://xxxxx.xxxxxxx.xxx?q2={PRODUCTCODE}


;以下、タイトル情報の抽出にかかわる設定。
;場所にかかわらず、正規表現で以下の名称を返すと最後にマッチした文字列で更新される。
;以下のキー名称は、PowerShellに渡される場合のキー名称としても使用される。
;productcode      : サイト上の型番
;seller           : 販売者、メーカー
;label            : レーベル
;title            : 作品タイトル
;series           : シリーズ名称
;releasedate      : 発売日
;genre            : ジャンル
;userdef1         : ユーザ定義1
;userdef2         : ユーザ定義2
;userdef3         : ユーザ定義3
;url              : 作品情報の詳細URL
;thumburl         : パッケージ画像(サムネイル)
;pkgimgurl        : パッケージ画像(保存対象)
;fixedstr         : 固定文字列

;ただし、以下の名称は複数あることを前提として列挙される
;cast        : 出演者

;===== 検索結果からタイトル情報を抽出する。ここでurlを抽出しない場合、タイトル詳細ページには変遷しないので注意
; セクション名はTitleList.xx (xx部分は[Search]で指定した値名)。存在しなければTitleListを使用する。

[TitleList.1]

;検索結果から必要な部分のみを切り出す正規表現。不要なら空欄
BodyFilter=id="main".*?main_end
;検索結果からタイトル情報を抽出するための正規表現。
Regex=href="(?<url>[^"]*)".*?title="(?<title>[^"]*)".*?src="(?<thumburl>[^"]*)".*?\/div
;次のページへのリンクを抽出する正規表現。{PAGENO}は次のページ番号に置換される。
NextPage=href="([^"]*page={PAGENO}[^"]*)
;最初のページのページ番号。デフォルトは1。2ページ目が1の場合は0を指定する。
StartPageNum=1


;===== 作品情報の詳細に対する正規表現
; マッチ対象は、TitleList.xでURLを抽出した場合はURLに変遷後のデータ、抽出していない場合は引き続き検索結果
; 複数記述した場合、すべて実行され後から抽出されたデータで上書き(出演者、ジャンル、ユーザ定義は追加)される。順序は記述順に関係なくセクション名の数字順となる。
; 各検索を表す値名は正整数であれば任意。連番である必要はなく、記述順に検索される。
; セクション名の数字(.1～.99)を増やせば複数定義できるので、ジャンルや種類ごとに画面構成が異なる場合に個別判定が定義できる。
; ただしMarkerで判定対象を識別すること。Markerで一致するセクションが複数ある場合それぞれで判定が行われる
; Markerの判定対象はBodyFilterの適用前。
[Title.1]

; マーカーなし
;Marker=
; タイトル詳細の切り出し
;BodyFilter=class="item_register"(.*?)</div>
BodyFilter=class="detail(.*?)id="other_item"
; 型番
1=品番.*?(?<productcode>[-a-zA-Z0-9]+[0-9]+).*?</td>
; 発売日
2=発売日.*?(?<releasedate>20[0-9]{2}\/[0-9]{2}\/[0-9]{2}).*?</td>
; メーカー
3=メーカー：.*?<a[^>]*?>(?<seller>[^<]*?)<
; レーベル
4=レーベル：.*?<a[^>]*?>(?<label>[^<]*?)<
; シリーズ
5=シリーズ：.*?<a[^>]*?>(?<series>[^<]*?)<
; パッケージ画像
6=<img.*?src="(?<pkgimgurl>[^"]*?[0-9]*L.jpg)"

[Title.2]

; マーカーなし
;Marker=
; 出演者情報の切り出し
BodyFilter=<table(.*?cast_[0-9]*.*?)</td>
; 出演者
1=cast_[0-9]*.*?>(?<cast>.*?)<\/a>
