1 package Gitalist::Controller::OPML;
6 use Sys::Hostname qw/hostname/;
7 use XML::OPML::SimpleGen;
9 use namespace::autoclean;
11 BEGIN { extends 'Gitalist::Controller' }
13 sub opml : Chained('/base') Args(0) {
16 my $opml = XML::OPML::SimpleGen->new();
18 $opml->head(title => lc(hostname()) . ' - ' . blessed($c)->config->{name});
20 for my $repos ( $c->model()->repositories->flatten ) {
21 $opml->insert_outline(
22 text => $repos->name. ' - '. $repos->description,
23 xmlUrl => $c->uri_for_action('/repository/rss', [$repos->name]),
27 $c->response->body($opml->as_string);
28 $c->response->content_type('application/rss');
31 __PACKAGE__->meta->make_immutable;