/[mws]/trunk/mbox2swish.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 /trunk/mbox2swish.pl

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

revision 13 by dpavlin, Thu May 6 16:53:40 2004 UTC revision 14 by dpavlin, Thu May 6 19:46:58 2004 UTC
# Line 2  Line 2 
2    
3  use MWS;  use MWS;
4  use Data::Dumper;  use Data::Dumper;
 use XML::Simple;  
 use Text::Iconv;  
5  use Date::Parse;  use Date::Parse;
6  use POSIX qw(strftime);  use POSIX qw(strftime);
7    
 my $iso2utf = Text::Iconv->new('ISO-8859-2','UTF-8');  
   
8  my $mws = MWS->new('global.conf');  my $mws = MWS->new('global.conf');
9    
10  my $debug = 1;  my $debug = 1;
# Line 20  foreach my $mbox ($mws->{config}->Parame Line 16  foreach my $mbox ($mws->{config}->Parame
16    
17          my $folder = $mws->open_folder($mbox);          my $folder = $mws->open_folder($mbox);
18    
19            print STDERR $folder->size," bytes\n" if ($debug);
20    
21          foreach my $message ($folder->messages) {          foreach my $message ($folder->messages) {
22    
23                  my $id = $message->messageId;                  my $id = $message->messageId;
# Line 31  foreach my $mbox ($mws->{config}->Parame Line 29  foreach my $mbox ($mws->{config}->Parame
29    
30                  foreach my $direction (qw(to from cc bcc)) {                  foreach my $direction (qw(to from cc bcc)) {
31                          foreach my $part (qw(phrase address comment)) {                          foreach my $part (qw(phrase address comment)) {
32                                  my @mail_fullnames = $mws->unroll($message,$direction,$part);                                  $document->{$direction.'_'.$part} = join("##", $mws->unroll($message,$direction,$part));
                                 $document->{$direction.'_'.$part} = join("##",@mail_fullnames);  
33                          }                          }
34                  }                  }
35    
36                  $document->{'subject'} = $message->get('Subject') || 'no subject';                  $document->{'subject'} = $message->get('Subject') || 'no subject';
                 my $body = $mws->plain_text_body($message);  
                 $body =~ s,[\n\r],<br/>,gs;  
37    
38                  $document->{'body'} = $body;                  $document->{'body'} = $mws->plain_text_body($message);
39    
40                  my $utime = str2time($message->date);                  my $utime = str2time($message->date);
41    
# Line 48  foreach my $mbox ($mws->{config}->Parame Line 43  foreach my $mbox ($mws->{config}->Parame
43                  $document->{'date'} = strftime("%Y-%m-%d %H:%M:%S", localtime($utime));                  $document->{'date'} = strftime("%Y-%m-%d %H:%M:%S", localtime($utime));
44    
45  #               print Dumper($document);  #               print Dumper($document);
46  #               $mws->add_index("$mbox $id" => $document);                  $mws->add_index("$mbox $id" => $document);
47    
48  #               my $xml = XMLout($document);                  # clear internal MWS cache to keep memory usage down
49                    # (this should be replaced by garbage collector in MWS,
50                  my $xml = qq{<message>};                  # but without it this is the best solution to keep machine
51                  foreach my $tag (keys %$document) {                  # alive while indexing)
52                          $xml .= "<$tag><![CDATA[".$document->{$tag}."]]></$tag>\n";                  $mws->{cache} = {};
                 }  
                 $xml .= qq{</message>};  
53    
54                  $xml = $iso2utf->convert($xml);                  undef $message;
                 use bytes;      # as opposed to chars  
                 print "Path-Name: $mbox $id\n";  
                 print "Content-Length: ".(length($xml)+1)."\n";  
                 print "Document-Type: XML\n\n$xml\n";  
55    
56          }          }
57    
58          $folder->close;          $mws->close_folder($mbox);
59            #$folder->close;
60  }  }
61    
62  $mws->close_index;  $mws->close_index;

Legend:
Removed from v.13  
changed lines
  Added in v.14

  ViewVC Help
Powered by ViewVC 1.1.26