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])"

2008-12-22

Notify::ImKayac書いた

| Notify::ImKayac書いた - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Notify::ImKayac書いた - otsune's SnakeOil  Notify::ImKayac書いた - otsune's SnakeOil  のブックマークコメント

とりあえずCodeReposにcommitしといた。

no title

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

2008-11-09

Publish::Tumblr作りかけ

| Publish::Tumblr作りかけ - otsune's SnakeOil  を含むブックマーク はてなブックマーク - Publish::Tumblr作りかけ - otsune's SnakeOil  Publish::Tumblr作りかけ - otsune's SnakeOil  のブックマークコメント

(※追記 no titleにてCodeReposに若干手直ししてcommitしといた)

参考にしたのはno title

typeはAPI | Tumblrを参照。

なんかlinkとかquoteとかで引数がバラバラすぎてメンドイ。

tumblr_paramのところはTemplateに押し出したいところだけど。

.ttで書いて文字列で返ってきたのをevalするみたいな邪悪っぽい手法でいいのかなぁ。

lib/Plagger/Plugin/Publish/Tumblr.pm

package Plagger::Plugin::Publish::Tumblr;
use strict;
use base qw( Plagger::Plugin );

use WWW::Tumblr;

sub register {
    my($self, $context) = @_;
    $context->register_hook(
        $self,
        'publish.entry' => \&publish_entry,
        'plugin.init'   => \&initialize,
    );
}

sub initialize {
    my($self, $context) = @_;

    $self->{tumblr} = WWW::Tumblr->new;
    $self->{tumblr}->email($self->conf->{username});
    $self->{tumblr}->password($self->conf->{password});
}

sub tumblr_param {
    my($e) = @_;

    my $parameter_tmpl = {
        regular => {
            title       => $e->title,
            body        => $e->{body}->data,
        }, 
        link => {
#            name        => $e->title,
            url         => $e->link,
            description => $e->{body}->data,
        }, 
        quote => {
            source      => qq{<a href="$e->link">$e->title</a>},
            quote       => $e->{body}->data,
        }, 
    };

    return $parameter_tmpl;
}

sub publish_entry {
    my($self, $context, $args) = @_;

    my $param = tumblr_param($args->{entry});
#    my $param = $self->templatize('tumblr.tt', $args);
    my $type = 'link' || $self->conf->{type};

    $self->{tumblr}->write(
        type => $type,
        %{$param->{$type}}, 
    );
    $context->log(info => "Post to Tumblr '$type' to '$e->{body}'");

}

1;
__END__

=head1 NAME

Plagger::Plugin::Publish::Tumblr - Post to tumblr.com

=head1 SYNOPSIS

  - module: Publish::Tumblr
    config:
      username: your-tumblrs-emailaddress
      password: your-password
      type: link

=head1 DESCRIPTION

Post tumblr.com

=head1 CONFIG

=over4

=item username, password

Your login account in tumblr.com

=item type

select 'regular, quote, link'
(not implemented 'conversation, photo, video, audio')

=back

=cut

=head1 AUTHOR

Masafumi Otsune

=head1 SEE ALSO

L<Plagger>, L<WWW::Tumblr>, L<http://www.tumblr.com/api>

=cut

deps/Publish-Tumblr.yaml

name: Publish::Tumblr
author: Masafumi Otsune
depends:
  WWW::Tumblr: 0
トラックバック - http://subtech.g.hatena.ne.jp/otsune/20081109

2008-07-09

wassr cpanの真似してwassr freebsdportsを作った

| wassr cpanの真似してwassr freebsdportsを作った - otsune's SnakeOil  を含むブックマーク はてなブックマーク - wassr cpanの真似してwassr freebsdportsを作った - otsune's SnakeOil  wassr cpanの真似してwassr freebsdportsを作った - otsune's SnakeOil  のブックマークコメント

ぶっちゃけIRC通知botと大差無い。

no title で。

config.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - http://beta.freshports.org/backend/ports-new.php

  - module: Aggregator::Simple

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

#  - module: Filter::Reverse

  - module: Publish::Twitter
    config:
      username: freebsdports
      password: *****
      apirealm: API Authentication
      apihost: api.wassr.jp:80
      apiurl: http://api.wassr.jp

Filter::Reverseは野良pluginでCodeReposにある。

なんかwassrにはポストだけ出来るAPIのtokenウンヌンが有るらしいが調べてない。

あとbotアカウントだけは運営に問い合わせると許可してくれるとかそういう仕組みは有っても良いかと思った。

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