難易度表管理者様向け資料

初版:2012/07/22
最終更新:2014/03/17
文責:Stairwayの中のやつ

Stairway および LR2IRmemoPEで読み込めるサイトのフォーマットを以下に提示します。
JavaScriptでなくても、フォーマットさえ合っていれば読めます。
逆に、JavaScriptであっても、書き方が違うと認識しません。

識別子

Stairway および LR2IRmemoPEでは、以下の文字列を含むサイトを、難易度表として認識します。

var mname = [
※13文字完全一致必須

終端子

以下の文字列を終端として認識します。

</script>
※9文字完全一致必須

識別子から終端子までの間を、曲データ部として認識します。

曲データ部

	[7,"★1",
		"AcceptAdvent-Border of Life- (★1)",
		"384",
		"<a href='http://bit.ly/eoD0dZ'>sun3 / obj : Stella</a>",
		" ",
		"原曲:幽雅に咲かせ墨染の桜 〜Border of Life(東方妖々夢)",
	],
	
  1. 難易度表ごとの識別子、この場合は"★"を、曲データの先頭として認識します。続く数字をレベルとして認識します。この行を1行目とします。
  2. 2行目を曲名とします。行中で最初の " から最後の " までを曲名とします。
  3. 3行目をbmsidとします。行中で最初の " から最後の " までが数字であることを期待しています。
    (3行目α:3行目が数値として読めない場合、続く4行目にbmsidが入ってることを期待します。overjoy用)
  4. (4行目以降はIRmemoPEのみ)
    4行目をURL1とします。行中で最初の ' から、その次の ' までをURLとして認識します。
  5. 5行目をURL2とします。行中で最初の ' から、その次の ' までをURLとして認識します。
  6. 6行目をその他情報とします。行中で最初の " から最後の " までを認識します。
  7. 6行目を取得したあとは、次の曲の先頭を探します。配列の終わりは判定していません。(2014/3/17追記)

コメントの取り扱い(要注意制限事項)

JavaScriptとしては、/*から*/で囲まれた範囲はコメントとし、データから除外されますが、
Stairway および IRmemoPEでは、コメントであることを考慮しません。
JavaScript的にコメントの部位であっても、曲データ部に合致するフォーマットならそのまま読みます。
これはJavaScriptをJavaScriptとして読むわけではないという仕様に起因します。

この仕様を変更する予定はありません。
これを真面目にやりだすと、きちんとしたJavaScriptパーサーが必要になります。
(C#とPythonのJavaScriptパーサーを提供していただけるなら話は別ですが)