7 use Data::Dump qw(dump);
10 my $feed = $q->param('feed') || 'polemos';
12 print qq|Content-type: application/rss+xml\r\n\r\n|;
14 my $feed_file = $feed;
15 $feed_file =~ s/\W+/_/g;
16 $feed_file = "cache/$feed_file.rss";
18 if (mirror("https://hrcak.srce.hr/en/rss/$feed", $feed_file) == RC_NOT_MODIFIED) {
19 warn "Modified $feed into rss/$feed_file\n";
25 open(my $fh, '<', $feed_file);
28 my $top = $1 if $rss =~ s/^(.*?)<item>//is;
30 $bottom = $1 if $rss =~ s/(<\/channel>.*)$//is;
31 @parts = split(/<item>/i, $rss);
53 $month2nr->{$_} = sprintf("%02d", $m++);
60 if ( $item =~ m/Published: (\w+) (\d{4})\./ ) {
61 return $2 . $month2nr->{$1};
63 die "no Published: in [$item]";
67 my @sorted = sort { month_year($a) cmp month_year($b) } @parts;
70 s/<title>.*Vol/<title>Vol/gs;