47 |
$self->{folder} = {}; |
$self->{folder} = {}; |
48 |
|
|
49 |
$self->{wrap_margin} = $self->{config}->val('global', 'wrap_margin'); |
$self->{wrap_margin} = $self->{config}->val('global', 'wrap_margin'); |
50 |
|
$self->{max_results} = $self->{config}->val('global', 'max_results') || 100; |
51 |
|
|
52 |
return $self; |
return $self; |
53 |
} |
} |
107 |
print STDERR "close_folder($mbox) forced on ",$self->{fetch_count},"iteration\n"; |
print STDERR "close_folder($mbox) forced on ",$self->{fetch_count},"iteration\n"; |
108 |
} |
} |
109 |
|
|
110 |
return $self->open_folder($mbox)->find($id) || |
my $msg = $self->open_folder($mbox)->find($id); |
111 |
|
if ($msg) { |
112 |
|
return $msg; |
113 |
|
} else { |
114 |
print STDERR "can't find message $id in $mbox. Time to re-index?\n"; |
print STDERR "can't find message $id in $mbox. Time to re-index?\n"; |
115 |
|
return; |
116 |
|
} |
117 |
} |
} |
118 |
|
|
119 |
|
|
127 |
|
|
128 |
$self->{'index_ids'} = \@index_ids; |
$self->{'index_ids'} = \@index_ids; |
129 |
|
|
130 |
my $results = $#index_ids + 1; |
#my $results = $#index_ids + 1; |
131 |
$self->{'results'} = $results; |
#$self->{'results'} = $results; |
132 |
|
|
133 |
|
my $results = $self->{'total_hits'} || ($#index_ids + 1); |
134 |
|
|
135 |
$self->{'curr_result'} = 0; |
$self->{'curr_result'} = 0; |
136 |
|
|
151 |
$qp =~ s/=([a-f0-9][a-f0-9])/chr(hex($1))/ieg; |
$qp =~ s/=([a-f0-9][a-f0-9])/chr(hex($1))/ieg; |
152 |
$qp =~ s/_/ /g; |
$qp =~ s/_/ /g; |
153 |
print STDERR "$qp\n" if ($debug == 2); |
print STDERR "$qp\n" if ($debug == 2); |
154 |
return $iconv->convert($qp); |
return $iconv->convert($qp) || $qp; |
155 |
} |
} |
156 |
|
|
157 |
$tmp =~ s/=\?([^\?]+)\?Q\?(.+)\?=/decode($1,$2)/ex; |
$tmp =~ s/=\?([^\?]+)\?Q\?(.+?)\?=/decode($1,$2)/ex; |
158 |
|
$tmp =~ s/^\s*["']+(.*?)["']+\s*$/$1/g; |
159 |
return $tmp; |
return $tmp; |
160 |
} |
} |
161 |
|
|
166 |
|
|
167 |
my @arr; |
my @arr; |
168 |
|
|
169 |
|
return if (! $message->$part); |
170 |
|
|
171 |
foreach my $from ($message->$part) { |
foreach my $from ($message->$part) { |
172 |
my $tmp = $from->$sub || next; |
my $tmp = $from->$sub || next; |
173 |
|
|
174 |
$tmp = $self->decode_qp($tmp); |
$tmp = $self->decode_qp($tmp); |
|
$tmp =~ s/^\s*["'](.*)["']\s*$/$1/; |
|
175 |
push @arr, $tmp; |
push @arr, $tmp; |
176 |
} |
} |
177 |
|
|
250 |
|
|
251 |
print STDERR "fetch_result_by_id($id) not in cache, hitting disk\n" if ($debug == 2); |
print STDERR "fetch_result_by_id($id) not in cache, hitting disk\n" if ($debug == 2); |
252 |
|
|
253 |
my $message = $self->fetch_message($id) || print STDERR "can't fetch message '$id'"; |
my $message = $self->fetch_message($id) || return; |
254 |
|
|
255 |
$row->{'id'} = $id; |
$row->{'id'} = $id; |
256 |
@{$row->{'from'}} = $self->unroll($message,'from','phrase'); |
@{$row->{'from'}} = $self->unroll($message,'from','phrase'); |