アルシャードセイヴァーのCSV索引検索
趣味プログラミングのお時間。
『アルシャードセイヴァー』のCSV形式索引を参照するスクリプト
AL2 CSV Search
FEARの公式サイトで『アルシャードセイヴァー』のCSV形式索引が公開された時、外部URLをデータソースとして、ブラウザで参照するスクリプトをそのうち誰かが書いてくれるだろうと秘かに待っていたのですが。他力本願は実らず。
そこでネットでググって、js-tablesを使えば楽勝と思いきや、文字コードShift-JISには対応していなかったの巻。残念。
外部URLのCSVを取ってくるコードを書くのはメンドーだなー。
じゃあCSVをミラーして、自分のところに持ってくれば、csv2tableが使えそうと考え、さっくり、お手軽に。*1
コードはこんな感じ。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="content-script-type" content="text/javascript"> <meta http-equiv="content-style-type" content="text/css"> <meta name="viewport" content="width=640, height=480, initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.0, user-scalable=yes" /> </head> <title>AL2 CSV Search</title> <script src="./js/jquery-1.9.1.min.js" type="text/javascript"></script> <script src="./js/jquery.csv2table-0.02-b-4.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(document).ready( function() { $("input:button").click(function(){ var csv = 'al2_dgidx.csv'; var word = 'like %' + $('#key').val() + '%'; var param = { select : [0,2,3,4,5,6,7,1], where : [{'名称':word},'||',{'読み':word}]}; $('#view0').csv2table( csv, param ); }); }); </script> </head> <body> <h3>AL2 CSV Search</h3> <input id="key" type="text" /> <br /> <input type="button" value="検索" /> <div id="view0"></div> </body> </html>
これだけ!
動作としては大体イメージ通り。検索ワードを入力して、「名称」か「読み」にヒットすれば表示します。アルファベットの全角半角大文字小文字互換には非対応。
こんな感じでクラス○○のタイミング○○の特技とか検索出来るといいなーと常々思うけど、データを入力するのが、ね(他力本願)。
あとこのサイズならbookmarkletのしてPC上では選択したテキストを検索するのがいいかも。とりあえず現状のままならスマホでも使えます。全データをダウンロードして、ローカルで全レコード検索をしているから遅いですが。ブラウザでCSVデータをキャッシュするとか仕掛ければ早くなるのかなぁ。とはいえWeb系は専門外なので、もっとスマートな解決方法があるかもしれません。
とここで自サイトにデータをコピーしている時点で、サーバのDBに突っ込んだ方が早いというあたりまえのことに気づきました。なんでCSVにこだわっていたんだっけ。そうだ外部URLのCSVをそのままデータソースにすれば、データメンテナンスの必要がないし、スマートだなと考えたのでした・・・。
とりあえず動いたので試合終了。満足。
*1:今考えればここらへんから脱線が始まってた