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-22

summaryの使い方にいまいち挫折

| summaryの使い方にいまいち挫折 - otsune's SnakeOil  を含むブックマーク はてなブックマーク - summaryの使い方にいまいち挫折 - otsune's SnakeOil  summaryの使い方にいまいち挫折 - otsune's SnakeOil  のブックマークコメント

Publish::Twitterのテンプレートでsummary使うように

--- assets/plugins/Publish-Twitter/twitter.tt   (revision 1853)
+++ assets/plugins/Publish-Twitter/twitter.tt   (local)
@@ -1 +1 @@
-[% IF entry.body %][% entry.body_text %][% ELSE %][% entry.title_text %][% END %] [% entry.permalink %]
+[% IF entry.summary %][% entry.summary.plaintext %][% ELSIF entry.body %][% entry.body_text | truncate(140) %][% ELSE %][% entry.title_text %][% END %] [% entry.permalink %]

な感じで書き換えてみて、config.yaml

  - module: Summary::Auto

を追加してみたんだけど。いまいち使い方がわかんねー。entry.summary.dataでいいのか?

[Plagger] Summary merge - Bulknews::Subtech - subtechとか見たら、この辺はPublish系で素直に使うためにTODOはいってるのね。

Publish::Twitterにウェイトをいれてみた

| Publish::Twitterにウェイトをいれてみた - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Publish::Twitterにウェイトをいれてみた - otsune's SnakeOil  Publish::Twitterにウェイトをいれてみた - otsune's SnakeOil  のブックマークコメント

=== assets/plugins/Publish-Twitter/twitter.tt
==================================================================
--- assets/plugins/Publish-Twitter/twitter.tt	(revision 1851)
+++ assets/plugins/Publish-Twitter/twitter.tt	(local)
@@ -0,0 +1 @@
+[% IF entry.body %][% entry.body_text %][% ELSE %][% entry.title_text %][% END %] [% entry.permalink %]
=== lib/Plagger/Plugin/Publish/Twitter.pm
==================================================================
--- lib/Plagger/Plugin/Publish/Twitter.pm	(revision 1851)
+++ lib/Plagger/Plugin/Publish/Twitter.pm	(local)
@@ -4,6 +4,7 @@
 
 use Encode;
 use Net::Twitter;
+use Time::HiRes qw(sleep);
 
 sub register {
     my($self, $context) = @_;
@@ -29,13 +30,17 @@
 sub publish_entry {
     my($self, $context, $args) = @_;
 
-    my $body = ( $args->{entry}->summary->plaintext || $args->{entry}->title ) . " " . $args->{entry}->permalink;
+    my $body = $self->templatize('twitter.tt', $args);
     # 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( encode_utf8($body) ) or $context->error("Can't update twitter status");
+
+    my $sleeping_time = $self->conf->{interval} || 15;
+    $context->log(info => "sleep $sleeping_time.");
+    sleep( $sleeping_time );
 }
 
 1;
@@ -68,6 +73,10 @@
 
 Twitter password. Required.
 
+=item interval
+
+Optional.
+
 =item apiurl
 
 OPTIONAL. The URL of the API for twitter.com. This defaults to "http://twitter.com/statuses" if not set.

Simple twitter status JavaScript

Simple twitter status JavaScript - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Simple twitter status JavaScript - otsune's SnakeOil  Simple twitter status JavaScript - otsune's SnakeOil  のブックマークコメント

no titleを見て、無駄なjsがあったので削除してみた。

<script type="text/javascript">function twitterCallback(obj){document.getElementById('my_twitter_status').innerHTML=obj[0].text;}</script>
<script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/3295761.json?callback=twitterCallback&count=1"></script>

Twitter Status : <span id="my_twitter_status"></span>

「3295761」はオレのid番号なので、自分の番号に置き換えるべし。twitter.com/{id}の自分のRSS Feedのhttp://twitter.com/statuses/user_timeline/3295761.rssというURLから番号を調べれば楽。

追記:

no titleの話題。

http://kengo.preston-net.com/twitter.jsだけど

function twitterCallback(obj) {
var text = obj[0].text;

document.getElementById('my_twitter_status').innerHTML = text;
document.getElementById('my_twitter_status_side').innerHTML = text;
}

で良いかも。

今日の日付に一致するEntryだけFilterするexpressionレシピ

| 今日の日付に一致するEntryだけFilterするexpressionレシピ - otsune's SnakeOil  を含むブックマーク はてなブックマーク - 今日の日付に一致するEntryだけFilterするexpressionレシピ - otsune's SnakeOil  今日の日付に一致するEntryだけFilterするexpressionレシピ - otsune's SnakeOil  のブックマークコメント

2007-04-21の話題。

Rule: expression:で$args->{entry}->dateが今日の日付かどうかを判定すれば出来そうなのでやってみた。

  - module: CustomFeed::Manganomori

  - module: Filter::Rule
    rule:
      expression: $args->{entry}->date->ymd eq Plagger::Date->now(timezone=>'Asia/Tokyo')->ymd

  - module: Publish::Twitter
    config:
       username: xxxxxxxx
       password: xxxxxxxx

これもexpression hackっぽいので、Filter::Dateとかlib/Plagger/Rule/にRule moduleで使いやすいインターフェースの物が有ると良いのかも。

(日付指定だとfindの+nとか-nの引数を思いつくけど)

追記:

(Aheadは野良プラグインなので、以下の記述は参考情報という感じで。no titleのあたりも参照)っていうか、Ruleのmodule見てて気がついたけど

  - module: CustomFeed::Manganomori

  - module: Filter::Rule
    rule:
      module: Ahead
      duration: 1440 # 24 hours

  - module: Publish::Twitter
    config:
       username: xxxxxxxx
       password: xxxxxxxx

で、よくね?

まぁ厳密には「日付として今日」というフィルターではないけど。