Changeset 63

Show
Ignore:
Timestamp:
11/08/06 04:45:54 (14 years ago)
Author:
exi
Message:

Attempt to fix the parser for items destroyed in a container.
Removed the authentication check for the csv killmail importer so new killboards with trimmed databases can be setup easier.

Location:
dev/common
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • dev/common/class.parser.php

    r56 r63  
    211211            { 
    212212                if ($destroyed[$i] == "") 
     213                { 
    213214                    $i++; 
     215                    continue; 
     216                } 
    214217 
    215218                if ($destroyed[$i] == "Empty.") 
     
    217220                    $container = false; 
    218221                    $i++; 
     222                    continue; 
    219223                } 
    220224 
     
    224228                $quantity = ""; 
    225229                $location = ""; 
    226                 $container = false; 
    227  
    228                 if (strpos($destroyed[$i], "Container") > 0 && 
    229                         strpos($destroyed[$i + 1], "(") <= 0 && 
    230                         strpos($destroyed[$i + 1], "Empty.") <= 0) 
    231                     $container = true; 
    232230 
    233231                $qtypos = strpos($destroyed[$i], ", Qty: "); 
    234232                $locpos = strpos($destroyed[$i], "("); 
    235233 
     234                if ($container && $qtypos == false) 
     235                { 
     236                    $container = false; 
     237                } 
     238                if (strpos($destroyed[$i], "Container")) 
     239                { 
     240                    $container = true; 
     241                } 
    236242                if ($qtypos <= 0 && !$locpos) 
    237243                { 
     
    239245                    if ($container) $location = "Cargo"; 
    240246                } 
    241  
    242247                if ($qtypos > 0 && !$locpos) 
    243248                { 
     
    267272                if ($quantity == "") 
    268273                    $quantity = 1; 
    269                 // echo $container." - ".$item." - ".$quantity." - ".$location."<br>"; 
     274 
    270275                $item = new Item(); 
    271276                $item->lookup(trim($itemname)); 
  • dev/common/kill_import_csv.php

    r35 r63  
    1 <? 
    2 /******************************************** 
     1<?php 
     2/** 
    33 * Import kills from a csv formatted text 
    44 * Used together with export tool! 
    5  * 
    6  * *****************************************/ 
     5 */ 
    76 
    8 require_once( "class.page.php" ); 
    9 require_once( "globals.php" ); 
    10 require_once( "class.parser.php" ); 
    11 require_once( "class.killlist.php" ); 
    12 require_once( "admin_menu.php" ); 
     7require_once("class.page.php"); 
     8require_once("globals.php"); 
     9require_once("class.parser.php"); 
     10require_once("class.killlist.php"); 
     11require_once("admin_menu.php"); 
    1312 
    14 $page = new Page( "Administration - Killmail import" ); 
     13$page = new Page("Administration - Killmail import"); 
    1514$page->setAdmin(); 
    1615 
    17 if ( !$_POST['killmail'] ) { 
    18         $html .= "<b>Killmails in same format as export (Comma Seperated - csv):</b><br>"; 
    19         $html .= "<form id=postform name=postform class=f_killmail method=post action=\"?a=kill_import_csv\">"; 
    20         $html .= "<textarea class=killmail id=killmail name=killmail cols=\"55\" rows=\"35\"></textarea><br><br>"; 
    21         $html .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id=submit name=submit type=submit value=\"Process !\"></input>"; 
    22         $html .= "</form>"; 
    23 } else { 
     16if (!$_POST['killmail']) 
     17{ 
     18    $html .= "<b>Killmails in same format as export (Comma Seperated - csv):</b><br>"; 
     19    $html .= "<form id=postform name=postform class=f_killmail method=post action=\"?a=kill_import_csv\">"; 
     20    $html .= "<textarea class=killmail id=killmail name=killmail cols=\"55\" rows=\"35\"></textarea><br><br>"; 
     21    $html .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id=submit name=submit type=submit value=\"Process !\"></input>"; 
     22    $html .= "</form>"; 
     23} 
     24else 
     25{ 
     26    // Set delimiter 
     27    $splitter = ',\n\n'; 
     28    $killmail = $_POST['killmail']; 
    2429 
     30    // Replace double quotes with single 
     31    $killmail = str_replace('""', "'", $killmail); 
    2532 
    26         // Set delimiter 
    27         $splitter=',\n\n'; 
    28         $killmail = $_POST['killmail']; 
    29         // Replace double quotes with single 
    30         $killmail = str_replace('""', "'", $killmail); 
    31         // Replace \ with nothing 
    32         $killmail = str_replace('\\', "", $killmail); 
    33         // Explodes to array 
    34         $getstrings = explode('"', $splitter.$killmail.$splitter); 
    35         // Set lenght of delimiter 
    36         $delimlen = strlen($splitter); 
    37         // Default 
    38         $instring = 0; 
     33    // Replace \ with nothing 
     34    $killmail = str_replace('\\', "", $killmail); 
    3935 
    40         // String magic :)  
    41         while (list($arg, $val) = each($getstrings)) { 
    42                 if ($instring==1) { 
    43                         $result[] = $val; 
    44                         $instring = 0; 
    45                 } else { 
    46                         if ((strlen($val)-$delimlen-$delimlen) >= 1) { 
    47                                 $temparray = split($splitter, substr($val, $delimlen, strlen($val)-$delimlen-$delimlen ) ); 
    48                                 while(list($iarg, $ival) = each($temparray)) { 
    49                                         $result[] = trim($ival); 
    50                                 } 
    51                         } 
    52                         $instring = 1; 
    53                 } 
    54         } 
     36    // Explodes to array 
     37    $getstrings = explode('"', $splitter . $killmail . $splitter); 
    5538 
    56         // Parses killmails one by one. 
    57         foreach($result as $killmail) { 
    58                 $parser = new Parser( $killmail ); 
    59                 $killid = $parser->parse( true ); 
    60                 // Make response 
    61                 if ( $killid == 0 ) $html .= "Killmail is malformed.<br>"; 
    62                 if ( $killid == -1 ) $html .= "That killmail has already been posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>"; 
    63                 if ( $killid == -2 ) $html .= "You are not authorized to post this killmail.<br>"; 
    64                 if ( $killid >= 1 ) $html .= "Killmail imported succesfully <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>"; 
    65                 unset($killid); 
    66                 unset($parser); 
    67         } 
     39    // Set lenght of delimiter 
     40    $delimlen = strlen($splitter); 
     41 
     42    // Default 
     43    $instring = 0; 
     44 
     45    // String magic :) 
     46    while (list($arg, $val) = each($getstrings)) 
     47    { 
     48        if ($instring == 1) 
     49        { 
     50            $result[] = $val; 
     51            $instring = 0; 
     52        } 
     53        else 
     54        { 
     55            if ((strlen($val) - $delimlen - $delimlen) >= 1) 
     56            { 
     57                $temparray = split($splitter, substr($val, $delimlen, strlen($val) - $delimlen - $delimlen)); 
     58                while (list($iarg, $ival) = each($temparray)) 
     59                { 
     60                    $result[] = trim($ival); 
     61                } 
     62            } 
     63            $instring = 1; 
     64        } 
     65    } 
     66    // Parses killmails one by one. 
     67    foreach ($result as $killmail) 
     68    { 
     69        $parser = new Parser($killmail); 
     70        $killid = $parser->parse(false); 
     71        // Make response 
     72        if ($killid == 0) 
     73        { 
     74            $html .= "Killmail is malformed.<br>"; 
     75        } 
     76        elseif ($killid == -1) 
     77        { 
     78            $html .= "That killmail has already been posted <a href=\"?a=kill_detail&kll_id=" . $parser->dupeid_ . "\">here</a>.<br>"; 
     79        } 
     80        elseif ($killid == -2) 
     81        { 
     82            $html .= "You are not authorized to post this killmail.<br>"; 
     83        } 
     84        elseif ($killid >= 1) 
     85        { 
     86            $html .= "Killmail imported succesfully <a href=\"?a=kill_detail&kll_id=" . $parser->dupeid_ . "\">here</a>.<br>"; 
     87        } 
     88    } 
    6889} 
    6990 
    70  
    71  
    72 $page->setContent( $html ); 
    73 $page->addContext( $menubox->generate() ); 
     91$page->setContent($html); 
     92$page->addContext($menubox->generate()); 
    7493$page->generate(); 
    7594?>