難易度表管理者様向け資料
初版: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行目とします。
- 2行目を曲名とします。行中で最初の " から最後の " までを曲名とします。
- 3行目をbmsidとします。行中で最初の " から最後の " までが数字であることを期待しています。
(3行目α:3行目が数値として読めない場合、続く4行目にbmsidが入ってることを期待します。overjoy用)
- (4行目以降はIRmemoPEのみ)
4行目をURL1とします。行中で最初の ' から、その次の ' までをURLとして認識します。
- 5行目をURL2とします。行中で最初の ' から、その次の ' までをURLとして認識します。
- 6行目をその他情報とします。行中で最初の " から最後の " までを認識します。
- 6行目を取得したあとは、次の曲の先頭を探します。配列の終わりは判定していません。(2014/3/17追記)
コメントの取り扱い(要注意制限事項)
JavaScriptとしては、/*から*/で囲まれた範囲はコメントとし、データから除外されますが、
Stairway および IRmemoPEでは、コメントであることを考慮しません。
JavaScript的にコメントの部位であっても、曲データ部に合致するフォーマットならそのまま読みます。
これはJavaScriptをJavaScriptとして読むわけではないという仕様に起因します。
この仕様を変更する予定はありません。
これを真面目にやりだすと、きちんとしたJavaScriptパーサーが必要になります。
(C#とPythonのJavaScriptパーサーを提供していただけるなら話は別ですが)