たごもりすメモ

コードとかその他の話とか。

UserAgent判定器 Project Woothee: v0.3.0 Javascript実装追加

参考: UserAgent判定器 Project Woothee v0.2.0: RubyおよびPython実装を追加 - tagomorisのメモ置き場
(参考2: 最近の多言語対応User-Agentパーサライブラリ woothee について - tagomorisのメモ置き場)

汎用のUser Agent判定器として細々とメンテしている woothee について、当初からやろうやろうとは思っていたJavascript実装を追加して v.0.3.0 とした。これで以下の実装で*1完全に同じ判定を行う実装が揃ったことになる。

あとついでに Wii U のUserAgent文字列に対応。これは各言語の実装で v0.3.0 をリリースするための言い訳的な感じ。

Perl, Ruby および Node.js については cpan.org / rubygems.org / npmjs.org にそれぞれ上げてあるので、コマンド一発でインストールできるはず。

$ cpanm Woothee
$ gem install woothee
$ npm install woothee

Javascript実装についてはNode.jsおよびブラウザサイドの両方で使えるようにしてある。はず。*2

<!-- for user side -->
<script src="./your/own/path/woothee.js"></script>
<script>
woothee.parse('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)')
// => {name: 'Internet Explorer', category: 'pc', os: 'Windows 7', version: '8.0', vendor: 'Microsoft'}
</script>
/* in Node.js code */
var woothee = require('woothee');
woothee.parse('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)')
// => {name: 'Internet Explorer', category: 'pc', os: 'Windows 7', version: '8.0', vendor: 'Microsoft'}

これで考えてた実装はひと揃いできたので、あとはブラウザ他が出てきたら対応していくだけかな。欲しい言語の実装が無い! というかた、いましたらpullreqをお待ちしています。

*1:テストケースが保証する限りでは

*2:async.jsのをそのまま真似たので require.js でも使えるはず、だけど確認してみてない。