#!/usr/bin/php4 -q
<?

/*

    Created 20020812 by Martin List-Petersen <martin@list-petersen.dk>
    
    This script imports filters from maildrop/sqwebmail-style into the database

    This code is provided AS IS and released under the GNU GPL v2 only.
    The license can be downloaded at http://www.marlow.dk/tech/gpl.txt

    20030807 - public release

*/

$user = array(
               
"email"   => $GLOBALS[argv][1],
             );

if(
$GLOBALS[argv][2] != "")
    
$ifile $GLOBALS[argv][2];
else
    
$ifile "/home/vmail/.mailfilters/".$user[email];

if((
$GLOBALS[argv][1] == "") OR (!file_exists($ifile)))
{
    
// punch user in the head and give him the syntax
    
print "maildrop-import.php 0.1 (C) Martin List-Petersen <martin@list-petersen.dk>\n";
    print 
"This code is provided AS IS and released under the GNU GPL v2 only.\n";
    print 
"The license can be downloaded at http://www.marlow.dk/tech/gpl.txt\n";
    print 
"\n";
    print 
"SYNTAX:\n";
    print 
"maildrop-import.php user@domain.top [filter-file-name]\n";
    print 
"\n";
    die;
}

$fp  fopen($ifile"r");
$new true;
while(!
feof($fp))
{
    
$line fgets($fp4096);
    if (
$new == false)
    {
        if(
substr($line02) == "##")
        {
            switch(
substr($line25))
            {
                case 
"Heade":
                                            
$rule[header] = trim(substr($line9));
                                            break;
                case 
"Value":
                                            
$rule[value]  = trim(substr($line8));
                                            break;
                case 
"Folde":
                                            
$rule[folder] = trim(substr($line9));
                                            break;
                case 
"From:":
                                            
$rule[from]   = trim(substr($line7));
                                            break;
                case 
"Name:":
                                            
$rule[name]   = trim(substr($line7));
                                            break;
                default:
                                            
$colon strpos(":"$line);
                                            if (
$colon === false$rule[options] .= trim(substr($line2))." ";
                                            break;
            }
        } else {
            
$rules[] = $rule;
            
$rule    = array();
            
$new true;
        }
    }
    if((
$new == true) AND (substr($line04) == "##Op"))
    {
        
$new      false;
        
$rule[op] = trim(substr($line5));
    }
}
fclose($fp);

for(
$x=0$x count($rules); $x++)
{
    print 
"INSERT INTO maildrop_rules ";
    print 
"(email, no, op, m_header, m_value, m_folder, m_from, options, name) ";
    print 
"VALUES('".$user[email]."', ".($x+1).",'".$rules[$x][op]."', '".$rules[$x][header]."', \"".$rules[$x][value];
    print 
"\", '".$rules[$x][folder]."', '".$rules[$x][from]."', '".trim($rules[$x][options])."', '";
    print 
$rules[$x][name]."');\n";
}
?>