Plagger::Plugin::CustomFeed::FlickrSearch で日本語検索ができない。 config.yaml に日本語を書くと止まってしまう。 config.yaml は UTF-8N でないとダメ、という条件があるらしいけど、 emacs で UTF-8 で保存すると BOM は取り除かれるという情報もある。
$ cat flickr.config.yaml global: timezone: Asia/Tokyo log: level: info plugins: - module: CustomFeed::FlickrSearch config: api_key: xxxx method: flickr.photos.search params: text: 猫 - module: Publish::Serializer config: dir: /home/kyanny serializer: YAML filename: %i.yaml
エラーは以下。よくわからない。。
$ ./plagger --config flickr.config.yaml Plagger::Cache [error] Can't load Cache::FileCache. Fallbacks to Plagger::Cache::Null Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::Calc at /home/kyanny/local/lib/perl5/DateTime/Format/Epoch.pm line 12 Plagger [info] plugin Plagger::Plugin::CustomFeed::FlickrSearch loaded. Plagger [info] plugin Plagger::Plugin::Publish::Serializer loaded. Plagger [info] plugin Plagger::Plugin::Bundle::Defaults loaded. Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded. Plagger [info] plugin Plagger::Plugin::Summary::Auto loaded. Plagger [info] plugin Plagger::Plugin::Summary::Simple loaded. Plagger [info] plugin Plagger::Plugin::Namespace::HatenaFotolife loaded. Plagger [info] plugin Plagger::Plugin::Namespace::MediaRSS loaded. Plagger [info] plugin Plagger::Plugin::Namespace::ApplePhotocast loaded. Plagger::Plugin::CustomFeed::FlickrSearch [info] calling flickr.photos.search on Flickr API Use of uninitialized value in concatenation (.) or string at /home/kyanny/plagger/lib/Plagger/Plugin/CustomFeed/FlickrSearch.pm line 52. Plagger::Plugin::CustomFeed::FlickrSearch [fatal] flickr.photos.search failed: at line 52
ごちゃごちゃやってたらなんとなくできた。 Plagger::Plugin::CustomFeed::FlickrSearch::call_method() に $param が渡ってくる時点で UTF-8 フラグがたっていて "\x{732b}" とかになっているので (これは"猫") ここで UTF-8 フラグがたっていたら encode("utf-8", $param->{text}) とかするようにしたらちゃんと動いた。 config.yaml にどう書けばいいのかはちょっとわからない。。