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-10-19

Publblish::LivedoorBookmarkの修正も適用した

| Publblish::LivedoorBookmarkの修正も適用した - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Publblish::LivedoorBookmarkの修正も適用した - otsune's SnakeOil  Publblish::LivedoorBookmarkの修正も適用した - otsune's SnakeOil  のブックマークコメント

404エラー | 該当のページが見つかりませんの指摘をうけて修正。

=== lib/Plagger/Plugin/Publish/LivedoorClip.pm
==================================================================
--- lib/Plagger/Plugin/Publish/LivedoorClip.pm	(revision 2541)
+++ lib/Plagger/Plugin/Publish/LivedoorClip.pm	(local)
@@ -46,19 +46,25 @@
         tags  => encode('utf-8', $tag_string),
         title => encode('utf-8', $args->{entry}->title),
         notes => $summary,
+        rate  => ($args->{entry}->rate || $self->conf->{default_rate} || 1),
     );
 
     my $add_url = $uri->as_string;
     my $res = eval { $self->{mech}->get($add_url) };
     if ($res && $res->is_success) {
-        eval { $self->{mech}->submit_form(form_name => 'clip') };
+        eval {
+            $self->{mech}->submit_form(
+                form_name =>
+                ($self->{mech}->form_name('clip') ? 'clip' : 'edit_form' )
+            );
+        };
         if ($@) {
-           $context->log(info => "can't submit: " . $args->{entry}->link);
+            $context->log(info => "can't submit: $@ at $args->{entry}->link");
         } else {
             $context->log(info => "Post entry success.");
         }
     } else {
-       $context->log(info => "fail to clip $add_url HTTP Status: " . $res->code);
+       $context->log(error => "fail to clip $add_url HTTP Status: $res->code");
     }
  
     my $sleeping_time = $self->conf->{interval} || 3;
@@ -114,6 +120,7 @@
       password: your-password
       interval: 2
       post_body: 1
+      default_rate: 1
 
 =head1 DESCRIPTION
 
@@ -124,6 +131,7 @@
 =head1 AUTHOR
 
 Kazuhiro Osawa, Koichi Taniguchi
+Yasuhiro Matsumoto
 
 =head1 SEE ALSO

なんかcontent logの微修正も混じってるけど、それはそれ。

mattnさんのPublish::GooBookmarkにツッコミ

| mattnさんのPublish::GooBookmarkにツッコミ - otsune's SnakeOil  を含むブックマーク はてなブックマーク - mattnさんのPublish::GooBookmarkにツッコミ - otsune's SnakeOil  mattnさんのPublish::GooBookmarkにツッコミ - otsune's SnakeOil  のブックマークコメント

Gooブックマーク用plagger pluginをmattnさんが書いてた。

404エラー | 該当のページが見つかりません

(robots.txtによって非公開でしかブックマークできないあたりの分岐処理をしようとして放置してたんだよな)

んで気に成った所をツッコミしてたらコメント欄だと長くなったのでこっちに書く。

my $tag_string = @tags ? join(',', @tags) : '';

タグに,が含まれると分離してしまうという # XXX な状況が。(XXX←これって、たいていうごくよ。って意味だっけ?)

map{ tr/,/_/ } @tags; # separator as comma in goo bookmark
my $tag_string = @tags ? join(',', @tags) : '';

とかしてるけど、これもこれでアレな気配はするな。

タグのデリミタを吸収して相互交換できるPlagger::Tag::delimitarなんちゃらmethodってのがあってもいいのか?

point       => $self->conf->{rate} || 1,

Plagger::Entryにはrateというアクセサが有るので

point       =>  ($args->{entry}->rate || $self->conf->{default_rate} || 1),

とかのほうがいいかも。(rate使ってるのってほとんどないけど)

publicno    => 0,

これはオレが飽きて放り出した箇所で。

gooブックマークにブックマークするPerlスクリプト - M.C.P.C.でも指摘がある通り、robots.txtによってpublicno => 2じゃないと登録できないエントリーがあったりする。mechのfind_all_inputsでform_name publicnoのradioの有無を引っ掛けるのが良いのか?

あと

my $publicno = $self->conf->{default_publicno} || 0;

でconfigからデフォルト弄れるといいかも。

mattnmattn2007/10/19 18:43>||
($self->{mech}->form_name('clip') ? 'edit_form' : 'clip' ;)
||<
の";"が要らないかもしれません。

mattnmattn2007/10/19 18:57タグについてはも少し調べてから修正します。

mattnmattn2007/10/19 19:21もしかしたら逆かも。すみません。私の元のパッチから変ですね。
>||
($self->{mech}->form_name('clip') ? 'clip' : 'edit_form')
||<
申し訳ない。

otsuneotsune2007/10/19 22:54修正しました

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