| Plagger documentation | Contained in the Plagger distribution. |
Plagger::Plugin::Publish::OPML - Publish OPML files based on your subscription
- module: Publish::OPML
config:
filename: /path/to/subscription.opml
This plugin publishes OPML file using feeds found in the subscription.
Filename to save the OPML file. Required.
Title to be used as OPML head. Optional and defaults to Plagger Subscriptions.
Tatsuhiko Miyagawa
| Plagger documentation | Contained in the Plagger distribution. |
package Plagger::Plugin::Publish::OPML; use strict; use base qw( Plagger::Plugin ); use Plagger::Date; use File::Spec; sub init { my $self = shift; $self->SUPER::init(@_); my $output = $self->conf->{filename} or Plagger->context->error("filename is missing"); } sub register { my($self, $context) = @_; $context->register_hook( $self, 'publish.finalize' => \&finalize, ); } sub finalize { my($self, $context, $args) = @_; my $out = $self->templatize('opml.tt', { feeds => [ $context->subscription->feeds ], now => Plagger::Date->now, conf => $self->conf, }); my $path = $self->conf->{filename}; $context->log(info => "Writing OPML to $path"); open my $fh, ">:utf8", $path or $context->error("$path: $!"); print $fh $out; close $fh; } 1; __END__