#!/usr/bin/perl #script to import a bunch of mboxes at the command line require "prontolib.pl"; use Pronto::Data::Message; if (!@ARGV) { die "usage: import box1 box2 box3 .. \n" } read_prefs(); $conn = open_db_conn(); make_filter_and_get_account(); import_boxes(); sub import_boxes { foreach my $file (@ARGV) { open(MBOX, $file); $/ = "\nFrom "; while ($body = ) { $body =~ s/\nFrom $//s; $body =~ s/^.*\n//m; $error = &save_message($conn, $body, \%filter, $account); } $/="\n"; close(MBOX); } } sub make_filter_and_get_account { $sql = "select sorder, type, boxid, regex, addr, trueregex, count, id from filters order by sorder"; $query=$conn->prepare($sql); $query->execute(); while (@row = $query->fetchrow_array()) { $filter{$row[0]} = { 'id' => $row[7], 'type' => $row[1], 'boxid' => $row[2], 'regex' => $row[3], 'addr' => $row[4], 'trueregex' => $row[5], 'count' => $row[6] } } $sql = "select id, friendly, reply from accounts where def = ?"; $query=$conn->prepare($sql); $query->execute("y"); ($account->{'id'}, $account->{'friendly'}, $account->{'reply'}) = $query->fetchrow_array(); ($account->{'dm'} = "n"); ($account->{'dupecheck'}='y'); unless (defined $account->{'id'} && $account->{'id'}){$account->{'id'}=1;} }