+sub do_rss {
+ my $r = shift;
+ $r->model_class->process($r);
+ my $rss = XML::RSS->new(version => "2.0");
+ $rss->channel(
+ title => ($r->config->{application_name}. " : ".ucfirst($r->action)." ".ucfirst($r->table)." ".($r->objects||[])->[0]) ,
+ link => $r->config->{uri_base}."/".$r->path
+ );
+ my $maybe_photos = $r->{objects}||[];
+ my $photos =
+ (@$maybe_photos && $maybe_photos->[0]->isa("Memories::Photo"))
+ ? $maybe_photos :
+ ($r->{template_args}->{photos} || []);
+ for my $item (@$photos) {
+ my $link = $r->config->{uri_base}."photo/view/".$item->id;
+ $rss->add_item( title => $item->title, link => $link,
+ description =>
+ "<a href=\"$link\">
+ <img src=\"". $item->thumb_url."\" alt=\"".$item->title."\"></a>",
+ dc => { subject => join " ", $item->tags },
+ pubDate => $item->uploaded->strftime("%a, %d %b %Y %H:%M:%S %z")
+ )
+ }
+ $r->output($rss->as_string);
+ $r->content_type("application/rss+xml");
+ return
+}
+