Plagger
view release on metacpan or search on metacpan
lib/Plagger.pm view on Meta::CPAN
my @feeds;
$context->run_hook('searcher.search', { query => $query }, 0, sub { push @feeds, $_[0] });
Plagger->set_context(undef);
return @feeds;
}
sub log {
my($self, $level, $msg, %opt) = @_;
return unless $self->should_log($level);
# hack to get the original caller as Plugin or Rule
my $caller = $opt{caller};
unless ($caller) {
my $i = 0;
while (my $c = caller($i++)) {
last if $c !~ /Plugin|Rule/;
$caller = $c;
}
$caller ||= caller(0);
}
chomp($msg);
if ($self->conf->{log}->{encoding}) {
$msg = Encode::decode_utf8($msg) unless utf8::is_utf8($msg);
$msg = Encode::encode($self->conf->{log}->{encoding}, $msg);
}
warn "$caller [$level] $msg\n";
}
my %levels = (
debug => 0,
warn => 1,
info => 2,
error => 3,
);
sub should_log {
my($self, $level) = @_;
$levels{$level} >= $levels{$self->conf->{log}->{level}};
}
sub error {
my($self, $msg) = @_;
my($caller, $filename, $line) = caller(0);
chomp($msg);
die "$caller [fatal] $msg at line $line\n";
}
sub dumper {
my($self, $stuff) = @_;
local $Data::Dumper::Indent = 1;
$self->log(debug => Dumper($stuff));
}
sub template {
my $self = shift;
$self->log(error => "\$context->template is DEPRECATED NOW. use \$plugin->templatize()");
my $plugin = shift || (caller)[0];
Plagger::Template->new($self, $plugin);
}
sub templatize {
my($self, $plugin, $file, $vars) = @_;
$self->log(error => "\$context->templatize is DEPRECATED NOW. use \$plugin->templatize()");
$plugin->templatize($file, $vars);
}
1;
__END__
=head1 NAME
Plagger - Pluggable RSS/Atom Aggregator
=head1 SYNOPSIS
% plagger -c config.yaml
=head1 DESCRIPTION
Plagger is a pluggable RSS/Atom feed aggregator and remixer platform.
Everything is implemented as a small plugin just like qpsmtpd, blosxom
and perlbal. All you have to do is write a flow of aggregation,
filters, syndication, publishing and notification plugins in config
YAML file.
See L<http://plagger.org/> for cookbook examples, quickstart document,
development community (Mailing List and IRC), subversion repository
and bug tracking.
=head1 BUGS / DEVELOPMENT
If you find any bug, or you have an idea of nice plugin and want help
on it, drop us a line to our mailing list
L<http://groups.google.com/group/plagger-dev> or stop by the IRC
channel C<#plagger> at irc.freenode.net.
=head1 AUTHOR
Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt>
See I<AUTHORS> file for the name of all the contributors.
=head1 LICENSE
Except where otherwise noted, Plagger is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
=head1 SEE ALSO
L<http://plagger.org/>
=cut
( run in 2.833 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )