/[mws]/trunk/MWS.pm
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/MWS.pm

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

revision 22 by dpavlin, Sat May 8 01:13:33 2004 UTC revision 41 by dpavlin, Mon May 10 20:26:17 2004 UTC
# Line 4  package MWS; Line 4  package MWS;
4    
5  use strict;  use strict;
6  use warnings;  use warnings;
 use Carp;  
7    
8    use lib '.';
9    
10    use Carp;
11  use Mail::Box::Manager;  use Mail::Box::Manager;
12  use Config::IniFiles;  use Config::IniFiles;
13  use POSIX qw(strftime);  use POSIX qw(strftime);
# Line 16  use Date::Parse; Line 18  use Date::Parse;
18  use POSIX qw(strftime);  use POSIX qw(strftime);
19  use MIME::Base64;  use MIME::Base64;
20    
 #use MWS_plucene;  
 use MWS_swish;  
   
 require Exporter;  
   
 our @ISA = qw(Exporter);  
   
 our %EXPORT_TAGS = ();  
 our @EXPORT_OK;  
 our @EXPORT;  
   
21  our $VERSION = '1.00';  our $VERSION = '1.00';
22    
23  my $folder;     # placeholder for folders  my $folder;     # placeholder for folders
24    
25  my $debug = 2;  my $debug = 1;
26    
27  sub new {  sub new {
28          my $class = shift;          my $class = shift;
29          my $self = {};          my $self = {@_};
30          bless($self, $class);          bless($self, $class);
31    
         my $config_file = shift || die "need index file";  
32    
33          $self->{config} = new Config::IniFiles( -file => $config_file );          my $config_name = $self->{config_file} || croak "need config_file";
34            $config_name =~ s/\.conf.*$//;
35            $self->{config_name} = $config_name;
36    
37          my $index_file = $self->{config}->val('global', 'index') || croak "can't find [index] section in config file with path of index";          $self->{config} = new Config::IniFiles( -file => $self->{config_file} );
38    
39            my $index_dir = $self->{config}->val('global', 'index') || croak "can't find [index] section in config file with path of index";
40    
41          $self->{mgr} = Mail::Box::Manager->new(access => 'r');          $self->{mgr} = Mail::Box::Manager->new(access => 'r');
42          $self->{index_file} = $index_file;          $self->{index_dir} = $index_dir;
43    
44          # placeholder for opened folders          # placeholder for opened folders
45          $self->{folder} = {};          $self->{folder} = {};
# Line 66  sub normalize_string { Line 60  sub normalize_string {
60          $v = join('',sort split(/\s+/,$v));          $v = join('',sort split(/\s+/,$v));
61          $v =~ s/\W+//g;          $v =~ s/\W+//g;
62    
63          return $v;          return lc($v);
64  }  }
65    
66  # reset tables for search results  # reset tables for search results
# Line 112  sub fmtdate { Line 106  sub fmtdate {
106                  push @out, sprintf($f, $v);                  push @out, sprintf($f, $v);
107          }          }
108    
109  print STDERR "fmtdate: ",join('|',@out),"\n";          print STDERR "fmtdate: ",join('|',@out),"\n" if ($debug == 2);
110    
111          return (wantarray ? @out : join("-",@out));          return (wantarray ? @out : join("-",@out));
112  }  }
# Line 222  sub search { Line 216  sub search {
216    
217          $self->{'curr_result'} = 0;          $self->{'curr_result'} = 0;
218    
219            $self->reset_counters;
220    
221          print STDERR "$results results\n" if ($debug == 2);          print STDERR "$results results\n" if ($debug == 2);
222    
223          return $results || 'error';          return $results || 'error';
# Line 328  sub plain_text_body { Line 324  sub plain_text_body {
324                  }                  }
325          }          }
326    
327            if (! $body) {
328                    $body = "[plain/text body not found]" if ($debug == 2);
329                    print STDERR "plain/text body not found\n" if ($debug);
330                    return;
331            }
332    
333          # reformat with Text::Autoformat          # reformat with Text::Autoformat
334          my $wrap = $self->{wrap_margin};          my $wrap = $self->{wrap_margin};
335          if ($wrap && $body && $body =~ m/^.{$wrap}..*$/m) {          if ($wrap && $body && $body =~ m/^.{$wrap}..*$/m) {
                 $body =~ s/[\r\n]/\n/gs;  
336                  $body = autoformat($body, {right=>$wrap, all=>1});                  $body = autoformat($body, {right=>$wrap, all=>1});
337                  $body .="\n[reformated using autoformat, margin at $wrap]" if ($debug == 2);                  $body .="\n[reformated using autoformat, margin at $wrap]" if ($debug == 2);
338          }          }
# Line 375  sub fetch_result_by_id { Line 376  sub fetch_result_by_id {
376                  print STDERR "$id stored in cache\n" if ($debug == 2);                  print STDERR "$id stored in cache\n" if ($debug == 2);
377          } else {          } else {
378                  print STDERR "fetch_result_by_id($id) in cache\n" if ($debug == 2);                  print STDERR "fetch_result_by_id($id) in cache\n" if ($debug == 2);
379                    foreach my $p (qw(from to cc bcc)) {
380                            foreach my $v (@{$row->{$p}}) {
381                                    $self->add_counter($p,$v);
382                            }
383                    }
384    
385                    $self->add_counter_calendar($row->{date_utime});
386          }          }
387    
388          return $row;          return $row;

Legend:
Removed from v.22  
changed lines
  Added in v.41

  ViewVC Help
Powered by ViewVC 1.1.26