package Plagger::Plugin::Filter::iSightEnclosure; use strict; use base qw( Plagger::Plugin ); use File::Temp qw(tempdir); sub register { my($self, $context) = @_; $context->register_hook( $self, 'aggregator.finalize' => \&shutter, 'update.entry.fixup' => \&filter, 'update.fixup' => \&cleanup, ); } sub rule_hook { 'update.entry.fixup' } sub shutter { my($self, $context) = @_; $self->{dir} = tempdir( CLEANUP => 1 ) or $context->log(error => "tmpdir $!"); $self->{file} = $self->{dir} . '/isight.jpg'; system('isightcapture ' . $self->{file}); $self->{size} = (stat($self->{file}))[7]; } sub filter { my($self, $context, $args) = @_; my $enclosure = Plagger::Enclosure->new; $enclosure->url($self->{file}); $enclosure->local_path($self->{file}); $enclosure->length($self->{size}); $enclosure->auto_set_type; $enclosure->is_inline(1) if $self->conf->{inline}; $args->{entry}->add_enclosure($enclosure); } sub cleanup { my($self, $context) = @_; rmdir(delete $self->{dir}) if $self->{dir}; } 1; __END__ =head1 NAME Plagger::Plugin::Filter::iSightEnclosure - add emclosure from iSight =head1 SYNOPSIS - module: Filter::iSightEnclosure config: iniline: 1 =head1 DESCRIPTION add emclosure from iSight. This uses isightcapture. get it from L. =head1 AUTHOR Kazuhiro Osawa =head1 SEE ALSO L, L =cut