Plaggerで一部写真を取ってこれなかった

自分のWindows PCでCRON働かせて昼休みに、
Plagger.bat -c c:\Perl\usr\XXXX.yaml
でflickrからあるキーワードにひっかかる写真を自動的に取ってきていた。

ところがあるyamlはOKであるyamlはNGとなっている。わけわからなかったのだが、ファイルのencodeを見たらUTF-8で作ったファイルはOKでSHIFT-JISで作ったファイルがNGだった。全部UTF-8にしたら無事動いた。お騒がせだった。


assetsが認識されない

Windows 7でPlaggerを動かしているのだが、どうも調子がよくない。あるサイトにはutf-8Nで(BOMなし)でyamlを
書かないとうまくゆかないとあるのだが、そうすると、今度はうんともすんとも言わなくなった。utf-8で保存すると
Plagger::Cache [error] Can’t load Cache::FileCache. Fallbacks to Plagger::Cache::Null
と吐かれる。しかも何かassetパスがyamlで指定しているのに。なぜかC:Perl/bin/assetsとされてしまう。

情けないが、Perl/binの配下にもassetsをコピーして動かしてみたら、動いた。


Plagger FlickrPhotoSearch

PlaggerのFlickrPhotoSearchでFlickrをたたいても写真がダウンロードできない。
調べてみると、以下の変更をすればよいことに気が付いた。

1.sub_create entry において
my $secret    = $search_photo->findvalue(‘@secret’);の後に
my $farm      = $search_photo->findvalue(‘@farm’);
の1行を追加

10行ほど下の
my $original = sprintf “http://static.flickr.com/%s/%s_%s_o.%s”,
$server_id, $photo_id, $secret, $format;

my $original = sprintf “http://farm%s.static.flickr.com/%s/%s_%s_o.b.%s”,
$farm, $server_id, $photo_id, $secret, $format;
に変更

これで写真が読み込めた。Happyである。

【2011/9/2追記】

Windows 7上に再度入れていると、うまく動かないケースが出てきた。特にCacheUtils.pmにて

Can’t store CODE item….

というメッセージでエラーが生じている。
まず第一にyamlファイルのエンコーディングをUTF-8Nに変更。第2に、を参照して、何かStorableに挿入すべきであると考え、CacheUtils.pm中 subの手前に
$Storable::drop_utf8 = TRUE;
の一文を挿入したところ、無事動き出した。めでたし!