package MT::Plugin::MixiBBS; use MT::Template::Context; use WWW::Mixi; use Jcode; MT::Template::Context->add_container_tag(MixiBBS => \&loop ); MT::Template::Context->add_tag(Subject => \&Subject ); MT::Template::Context->add_tag(Name => \&Name ); MT::Template::Context->add_tag(Link => \&Link ); MT::Template::Context->add_tag(Time => \&Time ); sub loop { my $ctx = shift; my $args = shift; my $res = ''; my $builder = $ctx->stash('builder'); my $tokens = $ctx->stash('tokens'); my $mixi = WWW::Mixi->new($args->{id}, $args->{pass}); my $response = $mixi->login; my @items = $mixi->get_new_bbs; my $i = 0; foreach my $item (@items) { $ctx->stash( 'subject', Jcode::convert(\$item->{'subject'},"utf8") ); $ctx->stash( 'link', Jcode::convert(\$item->{'link'},"utf8") ); $ctx->stash( 'name', Jcode::convert(\$item->{'name'},"utf8") ); $ctx->stash( 'time', Jcode::convert(\$item->{'time'},"utf8") ); defined(my $out = $builder->build($ctx, $tokens)) or return $ctx->error($builder->errstr); $res .= $out; $i++; last if( $i > 4 ); } $res; } sub Subject { my $ctx = shift; $ctx->stash('subject'); } sub Link { my $ctx = shift; $ctx->stash('link'); } sub Name { my $ctx = shift; $ctx->stash('name'); } sub Time { my $ctx = shift; $ctx->stash('time'); } __END__ #how to use