App::SocialSKK の socialskk.pl を自動起動するようにした
これは素晴しすぎる!
使えるまでを軽く説明しておく(Macの場合)。
まずインストール。
# cpan App::SocialSKKこの際 socialskk.pl も同時にインストールされます。
次に $HOME/.socialskk に
plugins: - name: SocialIME - name: HatenaBookmark - name: Wikipediaこんな感じに書く。
あとはsocialskk.plを起動するだけでApp::SocialSKK使える状態になります。
AquaSKK側での設定は「環境設定」の「辞書」タブで「+」を押して辞書を追加し、辞書の種類を「外部 skkserv 辞書」にし、場所を「localhost:1179」にするだけです。
(ちなみにいままでMacではMacUIMを使っていたのですが、現状のMacUIMだとskkservとskkの辞書を同時に設定できないっぽいので2年ぶりぐらいにAquaSKKに乗り換えました。そしたらAquaSKKがめっちゃ進化していてびびった)
とりあえず「ほってんとり」って書いて変換したら
料理のススメ:これから料理をしようと思っているひとへ - Money does not hurt your heartってでた。はてブからうまく取れてるようですね。
まぁ、これはネタとして。
その他にもSocialIMEには郵便番号とかも登録されてるっぽくて、日本語入力モードで「/0000000」(0000000はちゃんとした郵便番号ね)と打って変換を押すとその郵便番号の住所が出てきました(昔は郵便番号データベースをファイルに落したりしてたのを思い出した)。
っていうか実はSocialIMEに郵便番号が登録されてること知らなくてApp::SocialSKK::Plugin::ZipCodeとか作っちまった。悔しい...。
悔しいからソースを公開しておく。
package App::SocialSKK::Plugin::ZipCode; use strict; use warnings; use base qw( App::SocialSKK::Plugin ); use XML::Simple (); use URI; use Encode (); sub get_candidates { my ($self, $text) = @_; return if !defined $text || $text !~ /^\d{7}$/; my $uri = URI->new( 'http://zip.cgis.biz/xml/zip.php' ); $uri->query_form( zn => $text ); my $res = $self->ua->get( $uri->as_string ); if ($res->is_success) { eval { my $xml = XML::Simple::XMLin( $res->content, ValueAttr => [ qw(state_kana city_kana address_kana company_kana state city address company) ] ); my @candidates; for my $seq ( [ 4..7 ], [ 0..3 ] ) { my $val = join( '', map { my $v = $xml->{ ADDRESS_value }->{ value }->[ $_ ]; $v ne 'none' ? $v : ''; } @$seq ); push @candidates, Encode::encode( 'euc-jp', Encode::is_utf8( $val ) ? $val : Encode::decode( 'utf8', $val ), ); } return @candidates; }; } } 1; __END__ =head1 NAME App::SocialSKK::Plugin::ZipCode - Retrieves Candidates from Zip Code API =head1 SYNOPSIS # Add a line like below into your .socialskk: plugins: - name: ZipCode =head1 DESCRIPTION App::SocialSKK::Plugin::ZipCode performs retrieval of candidates from Zip Code API =head1 SEE ALSO =over 4 =item * Zip Code API http://zip.cgis.biz/ =back =head1 AUTHOR Yoshiki Kurihara E<lt>kurihara __at__ cpan.orgE<gt>
あ、本題を忘れそうになってしまった。
socialskk.plをログインしたら毎回起動するのはめんどうなのでlaunchdで起動するようにしといた。これはMac OS X 10.5.6でしか動作確認してませんのであしからず。
設定は簡単。$HOME/Library/LaunchAgents/socialskk.plist ってファイルを作って下記の内容にで保存したあとMacを再起動すると socialskk.pl が自動で起動しているはず。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>socialskk</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/socialskk.pl</string> </array> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/dev/null</string> <key>StandardOutPath</key> <string>/dev/null</string> </dict> </plist>