読者です 読者をやめる 読者になる 読者になる

偏読日記@はてな

本を読んだりゲームをしたり、インターネットの話をしたりします。小説も書きます。

Plaggerを使って自分のネット上での活動を集約する

programing Web

ネット上での活動場所が色々と増えてくると、それぞれの場所で書いたりやったりすることが増え、どうしても手薄になるところが出てきてしまうもの。
俺は文章を書くこと自体には抵抗がない、それどころか大好きなくらいですけれど、複数のところで場に合わせて内容や文体を変えて書くのがいまいち苦手なので、はてなダイアリー以外での「日記」「感想」的なものを書くのがだいぶ億劫になっていました。


しかしこれではいけないと思い、はてなダイアリーTwitterをメインの活動場所にして、それ以外での活動をPlaggerやその他のWebサービスを用いて相互にまとめようと考えて環境を整えてみました。
現在の状況を図にすると以下の通り。


同じ色の矢印は同じ内容の情報が流れていることを示しています。つまりはてなダイアリーからmixi日記(内容そのまま自動転載)Twitter(更新告知)という形で流れているということ。


せっかく作ったついったー部の日記を全く活用していないので、何らかの形でTwitterログからPlaggerを活用して転載を行いたいと考えています。その日の自分のTwitter発言を日記に転載するというのは誰でもやっている上に個人的にはあまりやりたくない*1ので、CutomFeed::TwitterFavorite(適当)とでもプラグインを自作して、俺のお気に入り発言を転載しようかと。
はてなブックマークは現在ぶくったーを利用してTwitterへの転載を行っていますが、ここもいずれPlaggerに変更するかも知れません。


今後使うWebサービスが増えていっても、はてなダイアリーTwitterで発言して他のサービスに出力、または他のサービスでの活動をはてなダイアリーTwitterに転載と言う形は変えずに行こうかと。
今時のWebサービスはみなRSSを生成してくれるので、それをPlaggerに読ませて変換して出力さえさせてやれば良いため作業自体はとても楽です。
むしろ重要になってくるのは情報の流し方とその内容ですね。むやみやたらと転載すればよいと言うものではないので、この辺りはきちんと考えていきたい次第。



以下、細かい技術的な事柄。どんな些細なことでも誰かの参考になるというのは以前のPlaggerでBlogとmixi日記を同期させた(完全版)で実感したことなので、たいした内容ではありませんが書いておきます。

Plaggerを用いたはてなダイアリー更新情報告知・読書メーター読了告知は、Publish::Twitterを改造して行っています。

空繰再繰 - Plagger使ってLastFMの最近聴いた音楽をTwitterに投稿する

この記事を参考に、Publish::Twitter内のサブルーチンpublish_entryを変更。

sub publish_entry {
    my($self, $context, $args) = @_;
    #タイトルのみ投稿する
    my $body = $args->{'entry'}->title . ' ' . $args->{'entry'}->permalink;
    $context->log(info => "Updating Twitter status to '$body'");
    $self->{twitter}->update($body);
}

元のRSSのタイトル部分+エントリへのリンクという形で投稿されるように改造し、Publish::TwitterTitleと名前を変えて使っています。これはあまり良いやり方でない気もしますが……

(追記)Plagger使ってはてなに投稿したのをTwitterに投げる この記事でPublish::Twitterを改造すると言ったこと無しに俺と同様の事をしている模様。あとで参考にします。


また、転載にあたってはこちらのFilter::RegexpTitleを用いて、サービスごとに内容を加工しています。
本を読む P::P::Filter::RegexpTitle

読書メーターの場合は「読了......『本のタイトル+読書メーターへのリンク』」 はてなダイアリーの場合は「Blog更新:『記事タイトル+記事へのリンク』」という形に変更。


YAMLは以下の通りです。はてなダイアリー更新告知と読書メーターとで、RSSのURLとタイトル変換の正規表現部分のみを変えたものを2種類用意して定期実行しています。

global:
    timezone: Asia/Tokyo
    log:
      level: info

plugins:
  - module: Subscription::Config
    config:
      feed:
      #はてなダイアリー更新告知の場合
        - url: http://d.hatena.ne.jp/a-park/rss
   #読書メーターの場合
        - url:http://book.akahoshitakuya.com/u/4173/rss

  - module: Filter::Reverse
  - module: Filter::Rule
    rule:
       - module: Deduped

  - module: Filter::RegexpTitle
    config:
    #はてなダイアリー更新告知の場合
      regexp: s/^(.*)/Blog更新:$1/
    #読書メーターの場合
     regexp: s/^(.*)/読了......$1/


  - module: Publish::TwitterTitle
    config:
      username: hogehoge
      password: password
      interval: 120

UTF-8で保存しないと日本語が化けるのは前にも書いたとおり。希に誤って違うエンコードで保存してしまって泣きを見ているのは俺です……

*1:しばらくすると参照できなくなる環境が故に書けることもあると思うので、自分のTwitterでの発言のログを見えやすいところに残したくない