lr2irproxyを使っていろんな段位認定をLR2IRに表示する

github.com

いろいろ試行錯誤したけど結局リクエスト、レスポンスとか全部で判定してボディを弄るのが一番良いという結論に至った。

lr2irproxy.pyはもうあんまりいじらない、はず。

前回あたりからhtml/XMLパーサにlxmlを標準で使うようにしたので、動作にはこれが必要。

lxml - Processing XML and HTML with Python

本題。

上記リポジトリのplugins内に(確か前回から試験的に入ってた気もするけど)exgradeというプラグインを追加しました。

こいつは何ができるのかというと、

  • 第3者が作った段位認定をLR2IRに擬似的に登録可能(もちろんデータは自前DBに貯める)
  • ランキングとマイページにその段位認定を表示できる(発狂SP/DP段位の下に持っている奴の最高段を表示)

f:id:GNQG:20151219215044j:plainf:id:GNQG:20151219215052j:plain

段位の削除、編集機能はまだ作っていないけど、段位の追加、表示/非表示の変更はできるはず。

段位の追加はJSONを用いて行う。ファイル名をgrade.jsonとする。grade.jsonは以下の形式のJSONとする(余計なものが付いていてもまあ大丈夫)。

{
    "name" : "段位認定セットの名前",
    "order" : [
        [courseid(Integer), "段位の表示(例えば'◆01')"]],
        [次の段位(上と同様)],
        ...
        [最後の段位(最高位)]
    ]
}

例を兼ねて、主要なやつ(というか知ってるやつ)はgistに上げてある。参考にどうぞ。

JSONs for exgrade · GitHub

インポート方法はhttp://ほにゃらら/LR2IR/exgradeにアクセスして追加→JSONをアップロードするまたはJSONのURL指定でOK。俺のgistの場合は各ファイル名の欄の右端にあるRawのURLを指定することになる。

合格情報の手動更新はまだ。前回更新から1日以上経った段位は起動時に自動更新される。

もしよければ使ってみて欲しい。

書いていて思ったんだけど、grade["order"]の中身は2要素のリストじゃなくて辞書のほうが良さそうだなあ。タイトル、曲目とか追加すれば段位ページの表示にそのまま使えそうだし。