9 |
use Socialtext::Resting; |
use Socialtext::Resting; |
10 |
use Encode; |
use Encode; |
11 |
use HTTP::Date; |
use HTTP::Date; |
12 |
|
use POSIX qw/strftime/; |
13 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
14 |
|
|
15 |
|
my $debug = 1; |
16 |
my $max = 999; |
my $max = 999; |
17 |
|
|
18 |
my $page; |
my $page; |
37 |
warn "SKIP: no LastModified in $path $name"; |
warn "SKIP: no LastModified in $path $name"; |
38 |
return; |
return; |
39 |
} |
} |
40 |
|
|
41 |
|
my $w = $ref->{widgets}->{widget}; |
42 |
|
|
43 |
my $data = |
my $data = |
44 |
$ref->{widgets}->{widget}->{data} || |
defined( $w->{data} ) ? $w->{data} : |
45 |
$ref->{widgets}->{widget}->{Body}->{data} || |
defined( $w->{Body}->{date} ) ? $w->{Body}->{date} : |
46 |
die "no data in $path ",dump( $ref ); |
die "no data in $path ",dump( $ref ); |
47 |
|
|
48 |
|
# empty data is returned like empty hash. yack. |
49 |
|
$data = "\n" if ref($data) eq 'HASH' and ! keys %$data; |
50 |
|
|
51 |
$page->{ $name } = { |
$page->{ $name } = { |
52 |
content => convert_markup( $data ), |
content => convert_markup( $data ), |
53 |
date => time2str( $date ), |
date => convert_date( $date ), |
54 |
}; |
}; |
55 |
|
|
56 |
# strip path from page name |
# strip path from page name |
57 |
$name =~ s,^.+/([^/]+)$,$1,; |
$name =~ s,^.+/([^/]+)$,$1,; |
58 |
push @page_names, $name; |
push @page_names, $name; |
59 |
|
|
60 |
# warn dump( $ref ); |
warn "## $path = ",dump( $ref ) if $debug; |
61 |
}, |
}, |
62 |
}, shift @ARGV || '.'); |
}, shift @ARGV || '.'); |
63 |
|
|
75 |
$Rester->workspace('razmjenavjestina'); |
$Rester->workspace('razmjenavjestina'); |
76 |
$Rester->put_workspacetag('TamTam'); |
$Rester->put_workspacetag('TamTam'); |
77 |
|
|
78 |
|
sub convert_date { |
79 |
|
my $date = shift; |
80 |
|
# return time2str( $date ); |
81 |
|
return strftime('%F %T %z', gmtime( $date )); |
82 |
|
} |
83 |
|
|
84 |
sub header { |
sub header { |
85 |
my $h = shift; |
my $h = shift; |
86 |
if ( $h =~ m/^(=+)\s+(.+?)\s+\1$/ ) { |
if ( $h =~ m/^(=+)\s+(.+?)\s+\1$/ ) { |
135 |
last if $count++ == $max; |
last if $count++ == $max; |
136 |
|
|
137 |
my $p = $page->{$name}; |
my $p = $page->{$name}; |
138 |
|
|
139 |
|
warn "## $name = ",dump( $p ) if $debug; |
140 |
|
|
141 |
my $body = $p->{content} || die "no content?"; |
my $body = $p->{content} || die "no content?"; |
142 |
my $date = $p->{date} || die "no date?"; |
my $date = $p->{date} || die "no date?"; |
143 |
|
|
144 |
my @tags = ( 'TamTam' ); |
my @tags = ( 'TamTam' ); |
145 |
|
|
146 |
|
my $full_name = $name; |
147 |
|
|
148 |
if ( $name =~ m!/! ) { |
if ( $name =~ m!/! ) { |
149 |
my @page_tags = split(m!/!, $name); |
my @page_tags = split(m!/!, $name); |
150 |
$name = pop @page_tags; # remove page name |
$name = pop @page_tags; # remove page name |
152 |
} |
} |
153 |
|
|
154 |
# link named pages |
# link named pages |
155 |
$body =~ s,$page_link_re,[$1],gs; |
$body =~ s,\b$page_link_re\b,[$1],gs; |
156 |
|
$body =~ s,``,,gs; |
157 |
|
|
158 |
$body .= qq{ |
$body .= qq{ |
159 |
---- |
---- |
160 |
|
|
161 |
Original: http://www.razmjenavjestina.org/$name |
Original sa http://www.razmjenavjestina.org/$full_name zadnja promjena {date: $date} |
162 |
}; |
}; |
163 |
|
|
164 |
Encode::_utf8_off( $body ); |
Encode::_utf8_off( $body ); |