otsune's SnakeOil RSSフィード

python -c "print''.join([chr(x) for x in 111&1101,110+~-~11,10^11*11,110+~-~11,-~101,-~11^11*11,~-110,111&11*11,11+11+10,11|~-0110,1-~11^11*11,10^11*11,-~11^11*11,110,101])"

2007-04-15

Publish::Twitterのdiff

| Publish::Twitterのdiff - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Publish::Twitterのdiff - otsune's SnakeOil  Publish::Twitterのdiff - otsune's SnakeOil  のブックマークコメント

Takesakothon会場でPublish::Twitterの日本語動作不良を直した。

UTF8フラグを取るためにencodeしているあたりが、これで良いのかどうかよくわかんねぇ。

--- lib/Plagger/Plugin/Publish/Twitter.pm       (revision 1850)
+++ lib/Plagger/Plugin/Publish/Twitter.pm       (local)
@@ -2,6 +2,7 @@
 use strict;
 use base qw( Plagger::Plugin );
 
+use Encode;
 use Net::Twitter;
 
 sub register {
@@ -28,9 +29,13 @@
 sub publish_entry {
     my($self, $context, $args) = @_;
 
-    my $body = ( $args->{entry}->summary || $args->{entry}->title ) . " " . $args->{entry}->permalink;
+    my $body = ( $args->{entry}->summary->plaintext || $args->{entry}->title ) . " " . $args->{entry}->permalink;
+    # TODO: FIX when Summary configurable.
+    if ( length $body > 159 ) {
+        $body = substr( $body, 0, 159);
+    }
     $context->log(info => "Updating Twitter status to '$body'");
-    $self->{twitter}->update($body) or $context->error("Can't update twitter status");
+    $self->{twitter}->update( encode_utf8($body) ) or $context->error("Can't update twitter status");
 }
 
 1;

追記: http://d.hatena.ne.jp/head/20070414/publish_twitter すでに同じ解決策でてたわ。

トラックバック - http://subtech.g.hatena.ne.jp/otsune/20070415