12 |
use POSIX qw/strftime/; |
use POSIX qw/strftime/; |
13 |
use File::Slurp; |
use File::Slurp; |
14 |
use File::MMagic::XS; |
use File::MMagic::XS; |
15 |
|
use Getopt::Long; |
16 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
17 |
|
|
18 |
my $debug = 0; |
my $debug = 0; |
19 |
my $max = 999; |
my $max = 999; |
20 |
|
my $attachments = 0; |
21 |
|
|
22 |
|
my @create_tags = (qw/ |
23 |
|
Trazi |
24 |
|
Nudi |
25 |
|
SvakodnevneDovitljivosti |
26 |
|
G33koSkop |
27 |
|
/); |
28 |
|
|
29 |
|
GetOptions( |
30 |
|
'debug+' => \$debug, |
31 |
|
'max=i' => \$max, |
32 |
|
'attachments' => \$attachments, |
33 |
|
); |
34 |
|
|
35 |
my $page; |
my $page; |
36 |
my $page_date; |
my $page_date; |
37 |
|
|
38 |
my @page_names; |
my @page_names; |
39 |
|
|
40 |
print "Collecting pages...\n"; |
print "Importing $max pages", $attachments ? " with attachments" : "", "...\n"; |
41 |
|
|
42 |
find({ |
find({ |
43 |
wanted => sub { |
wanted => sub { |
50 |
'attachment' => '+name', |
'attachment' => '+name', |
51 |
'meta' => 'name', |
'meta' => 'name', |
52 |
}, |
}, |
53 |
ForceArray => [ 'attachment', 'widget' ], |
ForceArray => [ 'attachment', 'meta', 'widget' ], |
54 |
) || die "can't open $path: $!"; |
) || die "can't open $path: $!"; |
55 |
|
|
56 |
warn "## $path = ",dump( $ref ) if $debug; |
warn "## $path = ",dump( $ref ) if $debug; |
92 |
|
|
93 |
$page->{ $name } = { |
$page->{ $name } = { |
94 |
content => convert_markup( $data ), |
content => convert_markup( $data ), |
95 |
|
original => $data, |
96 |
date => convert_date( $date ), |
date => convert_date( $date ), |
97 |
attachments => $attachments, |
attachments => $attachments, |
98 |
}; |
}; |
141 |
|
|
142 |
sub pre { |
sub pre { |
143 |
my $text = shift; |
my $text = shift; |
144 |
$text =~ s/^{{{//; |
$text =~ s/^{{{\s*//s; |
145 |
$text =~ s/}}}$//; |
$text =~ s/\s*}}}$//s; |
146 |
return '.pre' . $text . '.pre'; |
return "\n.pre\n" . $text . "\n.pre\n"; |
147 |
} |
} |
148 |
|
|
149 |
sub convert_markup { |
sub convert_markup { |
205 |
$body =~ s,``,,gs; |
$body =~ s,``,,gs; |
206 |
|
|
207 |
$body .= qq{ |
$body .= qq{ |
208 |
|
|
209 |
---- |
---- |
210 |
|
|
211 |
"original"<http://www.razmjenavjestina.org/$full_name> {date: $date} |
"original"<http://www.razmjenavjestina.org/$full_name> {date: $date} |
213 |
|
|
214 |
Encode::_utf8_off( $body ); |
Encode::_utf8_off( $body ); |
215 |
|
|
|
$Rester->put_page( $name, { content => $body, date => $date }); |
|
216 |
print "$name $date\n"; |
print "$name $date\n"; |
217 |
|
|
218 |
|
# original markup |
219 |
|
$Rester->put_page( $name, { content => $p->{original}, date => $date }); |
220 |
|
|
221 |
|
foreach my $t ( @create_tags ) { |
222 |
|
push @tags, $t if $full_name =~ m/$t/i; |
223 |
|
} |
224 |
|
|
225 |
foreach ( @tags ) { |
foreach ( @tags ) { |
226 |
$Rester->put_pagetag( $name, $_ ); |
$Rester->put_pagetag( $name, $_, { date => $date } ); |
227 |
print "+ tag $_\n"; |
print "+ tag $_\n"; |
228 |
} |
} |
229 |
foreach my $a ( @{ $p->{attachments} } ) { |
|
230 |
my $type = $m->get_mime( $a->{full_path} ); |
if ( $attachments ) { |
231 |
my $content = read_file( $a->{full_path} ); |
foreach my $a ( @{ $p->{attachments} } ) { |
232 |
print "+ attachment ", $a->{name}," $type ", length($content), " bytes\n"; |
my $type = $m->get_mime( $a->{full_path} ); |
233 |
$Rester->post_attachment($name, $a->{name}, $content, $type ); |
my $content = read_file( $a->{full_path} ); |
234 |
|
print "+ attachment ", $a->{name}," $type ", length($content), " bytes\n"; |
235 |
|
$Rester->post_attachment($name, $a->{name}, $content, $type ); |
236 |
|
} |
237 |
} |
} |
238 |
|
|
239 |
|
# converted page |
240 |
|
$Rester->put_page( $name, { content => $body, date => $date }); |
241 |
|
|
242 |
} |
} |
243 |
|
|