カスタムフォルダのメモ

自分が使っているちょっと特殊なカスタムフォルダのコマンドを晒すだけ

カスタムフォルダのコマンドの基本

カスタムフォルダのコマンドはsong.dbにプレイヤー名.dbをattachしたうえで

SELECT * FROM song WHERE (command) INNER JOIN ON song.hash=score.hash

の(command)の部分を定義している。(LR2のデータベースはsqlite3)(LR2のヘルプを参照)

SQLite Database Browserなどを用いればデータベースの中身を見たりコマンドをテストしたり出来る。

ランダムでソートする

結果をランダムでソートして表示する。

#COMMAND (適当なコマンド) ORDER BY RANDOM()

RANDOM()はsqliteの乱数を生成する関数。

IRでのスコア偏差値が低い(高い)順にソートする

BeMusicSeekerの機能をカスタムフォルダで使用する。BeMusicSeekerの導入必須

#COMMAND (適当なコマンド) ORDER BY(perfect*2+great-(SELECT average FROM ir_data WHERE hash = song.hash))*10/(SELECT sigma FROM ir_data WHERE hash = song.hash)+50 ASC

最後のASCをDESCに変更すれば高い順にソートになります。

内部結合が使えないのでサブクエリを使って強引に実装。

複数の表をマージする

BeMusicSeekerで表を導入している場合。

#COMMAND song.hash in (SELECT md5 FROM playlist_entry WHERE playlist_id in (1,2,3) AND folder = 'LEVEL 1' AND is_removed = 0)

playlist_id in (1,2,3)の(1,2,3)の中に表のplaylist_idを入力。

playlist_idはその表のカスタムフォルダの中身を見たりSQLite Database Browser使ったりして確認。