blob: 891e9453eaa74e32357095437dfffdf0a19bc7fc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#!/usr/bin/perl -w
use strict;
use feature 'say';
use XML::Feed;
use YAML::Syck;
use URI;
use Template;
my $feeds = LoadFile( shift );
my $hash_entries;
foreach ( @$feeds ) {
my $feed = XML::Feed->parse( URI->new( $_->{ url } ) );
for my $e ( $feed->entries ) {
my $date = $e->issued->strftime( '%Y.%m.%d' );
push @{ $hash_entries->{ $date } },
{
source => $_->{ source },
date => $e->issued->hms,
title => $e->title,
link => $e->link,
source_url => $_->{ source_url },
};
}
}
my @dates = keys %$hash_entries;
my @sorted_dates = sort { $a cmp $b } @dates;
my $hash_templates;
foreach my $date ( reverse @sorted_dates ) {
my @actions = sort { $b->{ date } cmp $a->{ date } }
@{ $hash_entries->{ $date } };
push @{ $hash_templates->{ entries } },
{
date => $date,
actions => \@actions
};
}
my $template = Template->new;
$template->process( 'lifestream.tt', $hash_templates, \my $content )
or die $!;
open my $fh, '>:utf8', 'public/index.html';
print $fh $content;
close $fh;
|