/[socialtext-import]/tamtam/tamtam2socialtext.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /tamtam/tamtam2socialtext.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by dpavlin, Thu Dec 13 11:38:36 2007 UTC revision 27 by dpavlin, Sat Dec 15 13:52:40 2007 UTC
# Line 12  use HTTP::Date; Line 12  use HTTP::Date;
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 {
# Line 35  find({ Line 50  find({
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;
# Line 77  find({ Line 92  find({
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                  };                  };
# Line 125  sub surround { Line 141  sub surround {
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 {
# Line 189  foreach my $name ( keys %$page ) { Line 205  foreach my $name ( keys %$page ) {
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}
# Line 196  foreach my $name ( keys %$page ) { Line 213  foreach my $name ( keys %$page ) {
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    

Legend:
Removed from v.20  
changed lines
  Added in v.27

  ViewVC Help
Powered by ViewVC 1.1.26