twitter2growl.pl をちょっと改造して導入

twitter2growl.pl をちょっと改造して導入 #

どうも twhirl の調子が悪い ので、かわりを探していたのだが、どう考えても 投稿 «« 閲覧 なので、投稿は最悪 WEB でもいいやってことで、Growl に垂れ流す方法を探していたところ、

via #!shebang.jp : Twitter が更新されすぎてるので Growl で見る事に。。
とかいうのがあったので、頂いてきたところ、

Cannot decode string with wide characters

とか言われるので

 --- twitter2growl.pl.org        2008-05-16 22:47:40.000000000 +0900
 +++ twitter2growl.pl.new        2008-05-16 22:47:01.000000000 +0900
 @@ -8,7 +8,7 @@
  use JSON::Any;
  use File::HomeDir qw(home);
  use POSIX;
 -use Encode ();
 +use Encode;
  use Path::Class qw(dir file);
  use IO::Prompt;
  use YAML;
 @@ -61,7 +61,7 @@
              POSIX::strftime($config->{date_format}, 
                              localtime(str2time($st->{created_at})));
          $notify .= sprintf "(%s) %s - %s\
", 
 -            $dt, $st->{user}->{screen_name}, $st->{text};
 +            $dt, encode('utf8',$st->{user}->{screen_name}), encode('utf8',$st->{text});
      }
      if ($notify) {
          Mac::Growl::PostNotification(

としたら動いてるっぽい

あとは cron で

*/5 * * * * twitter2growl.pl

とかするだけ

それにしても、Mac::Growl とか IO::Prompt とか File::HomeDir とか、普段あまり使わないもののサンプルとしていいスクリプトだなぁ、と思った
あと、Path::Class は便利そうなので、さわってみる

追記:
複数アカウントで運用する時は、スクリプトを別名コピーして、ファイル名に関する箇所 [config.yml (1 カ所) と .lastupdate (2 カ所)] を書き換えてしまうのが一番ラクチン

See Also

Copyright © 髭。/ Hugo + hugo-book