パッケージ com.lmt.lib.bldt.parser

クラス GenocideHtmlParser

  • すべての実装されたインタフェース:
    Parser

    public class GenocideHtmlParser
    extends Object
    implements Parser
    GENOCIDE の通常・発狂難易度表を掲載したWebページから楽曲情報を抽出するパーサです。

    当パーサはSHIFT-JISでエンコードされたWebページ(HTML)から楽曲情報を抽出します。 楽曲情報は JavaScript のソースコードとして定義されており、その中から楽曲情報定義部分の JSON を検出します。 楽曲情報の定義は以下のようになっていることを前提として抽出します。

     var mname = [
       [
         (番号),
         "(難易度ラベル)",
         "(タイトル)",
         "(LR2IRのID)",
         "<a href='(楽曲本体入手先URL)'>(アーティスト)</a>",
         "(楽曲コメント)"
       ], …以下複数
     ];
    導入されたバージョン:
    0.1.0
    • コンストラクタの詳細

      • GenocideHtmlParser

        public GenocideHtmlParser()
    • メソッドの詳細

      • parse

        public List<ContentDescription> parse​(TableDescription tableDesc,
                                              PlayStyle playStyle,
                                              byte[] raw)
                                       throws IOException
        入力された情報を使用して楽曲情報を解析し、楽曲情報一覧を生成して返します。

        入力データは各難易度表のサーバからダウンロードされた無加工のバイトデータです。 パーサは与えられた情報を基にして正確なデータの構造を特定し、解析した楽曲情報の一覧を返さなければなりません。 元データの内容が正しくないと判定した場合は IOException をスローしてエラー終了とするか、 正しくないデータを無視して解析を続行するかの判断をしてください。処理を続行する場合は DifficultyTables.printLog(String) を使用して問題となったデータをログ出力することを推奨します。

        定義:
        parse インタフェース内 Parser
        パラメータ:
        tableDesc - 処理対象の難易度表定義
        playStyle - 処理対象のプレースタイル
        raw - 難易度表のサーバからダウンロードされた無加工のバイトデータ
        戻り値:
        解析された楽曲情報一覧
        例外:
        IOException - 入出力エラー、またはデータ不正の検出により解析が続行不可