Changeset 403

Show
Ignore:
Timestamp:
07/05/09 04:24:44 (11 years ago)
Author:
kovell
Message:

Fixes: Parser updated with FriedRoadKill?'s, troubleshooting now correctly uses mysql connection, .htaccess set to disallow viewing of indexes, removed unused code from autoupgrade.

Location:
dev
Files:
1 added
5 modified

Legend:

Unmodified
Added
Removed
  • dev/common/admin/admin_troubleshooting.php

    r401 r403  
    105105//yes this is a mess, pew pew and programming dont mix =P 
    106106function find_SQL_Version() { 
    107         $conn = new DBConnection_mysqli; 
    108         $value = (float) mysqli_get_server_info($conn->id_); 
     107        $conn = new DBConnection; 
     108        $value = (float) mysql_get_server_info($conn->id_); 
    109109        return $value; 
    110110// shell_exec is often not supported so ask the connection instead. 
  • dev/common/includes/autoupgrade.php

    r400 r403  
    2929                update009(); 
    3030                update010(); 
     31                touch ('install/install.lock'); 
    3132        } 
    3233} 
     
    183184function update007() 
    184185{ 
    185         if(!config::get('007updatestatus')) config::set('007updatestatus',0); 
    186186        //Checking if this Update already done 
    187187        if (CURRENT_DB_UPDATE < "007" ) 
    188188        { 
     189                if(!config::get('007updatestatus')) config::set('007updatestatus',0); 
    189190                $qry = new DBQuery(true); 
    190191                // Add columns for external ids. 
     
    270271                        if(config::get('007updatestatus') <1) 
    271272                        { 
    272                                 if(!$qry->recordCount()) $qry->execute("INSERT IGNORE INTO tmp_price_ship select 
     273                                $qry->execute("INSERT IGNORE INTO tmp_price_ship select 
    273274                                        kll_id,if(isnull(shp_value),shp_baseprice,shp_value) FROM kb3_kills  
    274275                                        INNER JOIN kb3_ships ON kb3_ships.shp_id = kll_ship_id 
     
    289290                                $qry->execute($sql); 
    290291                                config::set('007updatestatus',2); 
    291                         } 
    292                         if(0 && config::get('007updatestatus') <3) 
    293                         { 
    294                                 $sql = "UPDATE tmp_pricing 
    295                                         INNER JOIN tmp_price on tmp_pricing.kll_id = tmp_price.kll_id 
    296                                         SET tmp_pricing.destroyed =  tmp_price.value 
    297                                         WHERE destroyed = 0"; 
    298                                 $qry->execute($sql); 
    299                                 config::set('007updatestatus',3); 
    300                         } 
    301                         if(0 && config::get('007updatestatus') <4) 
    302                         { 
    303                                 $qry->execute('DELETE FROM tmp_price'); 
    304                                 config::set('007updatestatus',4); 
    305292                        } 
    306293                        if(config::get('007updatestatus') <5) 
     
    319306                                } 
    320307                                config::set('007updatestatus',5); 
    321                         } 
    322                         if(0 && config::get('007updatestatus') <6) 
    323                         { 
    324                                 $sql = "UPDATE tmp_pricing 
    325                                         INNER JOIN tmp_price on tmp_pricing.kll_id = tmp_price.kll_id 
    326                                         SET tmp_pricing.dropped = tmp_price.value"; 
    327                                 $qry->execute($sql); 
    328                                 config::set('007updatestatus',6); 
    329308                        } 
    330309                        if(config::get('007updatestatus') <7) 
  • dev/common/includes/class.parser.php

    r378 r403  
    1818    function Parser($killmail) 
    1919    { 
    20         if(function_exists('mb_convert_encoding')) $killmail = mb_convert_encoding($killmail, "UTF-8"); 
     20                if( phpversion() >= '5.0.0' ) { //lousy but necessary 
     21            $canUnicode = true; //if this is unset, Russian will not parse, but English will atleast. 
     22        } 
    2123        $this->error_ = array(); 
    2224        $this->killmail_ = trim(str_replace("\r", '', $killmail)); 
     
    2426 
    2527        $pos = 0; 
    26         $russian = $this->uchr(1042).$this->uchr(1086).$this->uchr(1074).$this->uchr(1083).$this->uchr(1077).$this->uchr(1095) 
    27                 .$this->uchr(1077).$this->uchr(1085).$this->uchr(1086).' '.$this->uchr(1087).$this->uchr(1080).$this->uchr(1088) 
    28                 .$this->uchr(1072).$this->uchr(1090).$this->uchr(1086).$this->uchr(1074).':'; //involved party 
     28 
     29        if($canUnicode) { 
     30            $russian = $this->uchr(1042).$this->uchr(1086).$this->uchr(1074).$this->uchr(1083).$this->uchr(1077).$this->uchr(1095) 
     31                    .$this->uchr(1077).$this->uchr(1085).$this->uchr(1086).' '.$this->uchr(1087).$this->uchr(1080).$this->uchr(1088) 
     32                    .$this->uchr(1072).$this->uchr(1090).$this->uchr(1086).$this->uchr(1074).':'; //involved party 
     33        } 
    2934 
    3035        //Fraktion added for mails that originate from griefwatch / battle-clinic that do nothing with this info 
     
    3237        { 
    3338            $this->preparse('german'); 
    34         }  
    35         elseif (strpos($this->killmail_, $russian))  
    36         {  
     39        } 
     40        elseif (strpos($this->killmail_, $russian) && $canUnicode) 
     41        { 
    3742            $this->preparse('russian'); 
    38              
     43 
    3944        } 
    4045        elseif (strpos($this->killmail_, 'System Security Level:')) 
     
    7782    function parse($checkauth = true) 
    7883    { 
     84        //trim out any multiple spaces that may exist 
     85        $check = 1; 
     86        while($check > 0) { 
     87            $this->killmail_ = str_replace('  ', ' ', $this->killmail_, $check); 
     88        } 
     89 
    7990        // header section 
    8091        $involvedpos = strpos($this->killmail_, "Involved parties:"); 
     
    90101        $victim = explode("\n", trim(substr($this->killmail_, 0, $involvedpos))); 
    91102        $upper_limit =  count($victim); 
    92          
     103 
    93104        $victimname = "Unknown"; //lovely default values 
    94105        $factionname = "None"; 
     
    102113        $pos = 0; 
    103114        $moon = ""; 
    104          
     115 
    105116        for($counter = 0; $counter <= $upper_limit; $counter++) 
    106117        { 
    107             if(preg_match("/Victim: (.*)/", $victim[$counter], $matches))  
     118            if(preg_match("/Victim: (.*)/", $victim[$counter], $matches)) 
    108119            { 
    109120                if($matches[1]) 
    110121                    $victimname = $matches[1]; 
    111             }  
    112             elseif (preg_match("/Corp: (.*)/", $victim[$counter], $matches))  
     122            } 
     123            elseif (preg_match("/Corp: (.*)/", $victim[$counter], $matches)) 
    113124            { 
    114125                 if($matches[1]) 
    115126                    $corpname = $matches[1]; 
    116127            } 
    117             elseif (preg_match("/Alliance: (.*)/", $victim[$counter], $matches))  
     128            elseif (preg_match("/Alliance: (.*)/", $victim[$counter], $matches)) 
    118129            { 
    119130                if($matches[1]) 
    120131                    $alliancename = $matches[1]; 
    121132            } 
    122             elseif (preg_match("/Faction:\s*(.*)/", $victim[$counter], $matches))  
    123             { 
    124                 if($matches[1]) 
     133            elseif (preg_match("/Faction: (.*)/", $victim[$counter], $matches)) 
     134            { 
     135                if(strlen($matches[1]) > 5) //catches faction mails from -A- 
    125136                    $factionname = $matches[1]; 
    126             } 
    127             elseif (preg_match("/Destroyed: (.*)/", $victim[$counter], $matches))  
     137                else $factionname = "None"; 
     138            } 
     139            elseif (preg_match("/Destroyed: (.*)/", $victim[$counter], $matches)) 
    128140            { 
    129141                if($matches[1]) 
    130142                    $shipname = $matches[1]; 
    131             }  
    132             elseif (preg_match("/System: (.*)/", $victim[$counter], $matches))  
     143            } 
     144            elseif (preg_match("/System: (.*)/", $victim[$counter], $matches)) 
    133145            { 
    134146                if($matches[1]) 
    135                                 { 
     147                                {   //bad assumption here - moon has to come before security. 
    136148                    $systemname = $matches[1]; 
    137                         // fix for unanchored destroyed POS modules - replace $moon with $systemname 
    138                     // as that's all we have to go on. Placed here as $moon is filled before 
    139                     //systemname is known - Captain Thunk 
    140149                    if ((strcmp($moon, 'Unknown') == 0) && ($pos == 1)) 
    141150                        { 
     
    145154                                } 
    146155                        } 
    147             elseif (preg_match("/Security: (.*)/", $victim[$counter], $matches))  
     156            elseif (preg_match("/Security: (.*)/", $victim[$counter], $matches)) 
    148157            { 
    149158                if($matches[1]) 
    150159                    $systemsec = $matches[1]; 
    151             }  
    152             elseif (preg_match("/Damage Taken: (.*)/", $victim[$counter], $matches))  
     160            } 
     161            elseif (preg_match("/Damage Taken: (.*)/", $victim[$counter], $matches)) 
    153162            { 
    154163                if($matches[1]) 
     
    157166                    $this->dmgtaken = $dmgtaken; 
    158167                } 
    159             }  
    160             elseif (preg_match("/Moon: (.*)/", $victim[$counter], $matches))  
     168            } 
     169            elseif (preg_match("/Moon: (.*)/", $victim[$counter], $matches)) 
    161170            { 
    162171                if($matches[1]) 
     
    176185            } 
    177186        } 
    178          
     187 
    179188        //report the errors for the things that make sense. 
    180189        //we need pilot names, corp names, ship types, and the system to be sure 
     
    185194            unset($victimname); //we unset the variable so that it fails the next check 
    186195        } 
    187          
     196 
    188197        if (strcmp($corpname, 'Unknown') == 0) 
    189198        { 
     
    191200            unset($corpname); 
    192201        } 
    193              
     202 
    194203        if (strcmp($shipname, 'Unknown') == 0) 
    195204        { 
     
    197206            unset($shipname); 
    198207        } 
    199          
     208 
    200209        if (strcmp($systemname, 'Unknown') == 0) 
    201210        { 
     
    203212            unset($systemname); 
    204213        } 
    205          
     214 
    206215        if ($pos == 1) 
    207216        { 
    208217                $victimname = $moon; 
    209218        } 
    210          
    211         if (!isset($timestamp) ||  
     219 
     220        if (!isset($timestamp) || 
    212221                !isset($factionname) || 
    213222                !isset($alliancename) || 
     
    278287            } 
    279288        } 
    280         $involved = explode("\n", trim(substr($this->killmail_, strpos($this->killmail_, "Involved parties:") + 17, $end - (strpos($this->killmail_, "Involved parties:") + 17))));      
     289        $involved = explode("\n", trim(substr($this->killmail_, strpos($this->killmail_, "Involved parties:") + 17, $end - (strpos($this->killmail_, "Involved parties:") + 17)))); 
    281290 
    282291        $ipilot_count = 0; //allows us to be a bit more specific when errors strike 
     
    285294        $order = 0; 
    286295        while ($i < count($involved)) 
    287         {               
     296        { 
    288297            $iparts = count($involved); 
    289298            $finalblow = 0; 
     
    291300            while($i < $iparts) { 
    292301                $ipilot_count++; 
    293                  
     302 
    294303                $ipname = "Unknown"; 
    295304                $ianame = "None"; 
     
    300309                $idmgdone = '0'; 
    301310                $secstatus = "0.0"; 
    302                  
    303                  
     311 
     312 
    304313                while($involved[$i] == '') 
    305314                { //compensates for multiple blank lines between involved parties 
     
    315324                for($counter = $i; $counter <= $iparts; $counter++) 
    316325                { 
    317                     if(preg_match("/Name: (.*)/", $involved[$counter], $matches))  
     326                    if(preg_match("/Name: (.*)/", $involved[$counter], $matches)) 
    318327                    { 
    319328                        if($matches[1]) 
     
    343352                                    $corporation = substr($corporation, 0, $end); 
    344353                                } 
    345                                 else  
     354                                else 
    346355                                { 
    347356                                    $finalblow = 0; 
     
    364373                        } 
    365374                    } 
    366                     else if(preg_match("/Alliance: (.*)/", $involved[$counter], $matches))  
     375                    else if(preg_match("/Alliance: (.*)/", $involved[$counter], $matches)) 
    367376                    { 
    368377                        if($matches[1]) 
    369378                            $ianame = $matches[1]; 
    370379                    } 
    371                     else if(preg_match("/Faction: (.*)/", $involved[$counter], $matches))  
    372                     { 
    373                         if($matches[1]) 
     380                    else if(preg_match("/Faction: (.*)/", $involved[$counter], $matches)) 
     381                    { 
     382                        if(strlen($matches[1]) > 5) //catches faction mails from -A- 
    374383                            $ifname = $matches[1]; 
    375                     } 
    376                     else if(preg_match("/Corp: (.*)/", $involved[$counter], $matches))  
     384                        else $ifname = "NONE"; 
     385                    } 
     386                    else if(preg_match("/Corp: (.*)/", $involved[$counter], $matches)) 
    377387                    { 
    378388                        if($matches[1]) 
    379389                            $icname = $matches[1]; 
    380390                    } 
    381                     else if(preg_match("/Ship: (.*)/", $involved[$counter], $matches))  
     391                    else if(preg_match("/Ship: (.*)/", $involved[$counter], $matches)) 
    382392                    { 
    383393                        if($matches[1]) 
    384394                            $isname = $matches[1]; 
    385395                    } 
    386                     else if(preg_match("/Weapon: (.*)/", $involved[$counter], $matches))  
     396                    else if(preg_match("/Weapon: (.*)/", $involved[$counter], $matches)) 
    387397                    { 
    388398                        if($matches[1]) 
    389399                            $iwname = $matches[1]; 
    390400                    } 
    391                     else if(preg_match("/Security: (.*)/", $involved[$counter], $matches))  
     401                    else if(preg_match("/Security: (.*)/", $involved[$counter], $matches)) 
    392402                    { 
    393403                        if($matches[1]) 
    394404                            $secstatus = $matches[1]; 
    395405                    } 
    396                     else if(preg_match("/Damage Done: (.*)/", $involved[$counter], $matches))  
     406                    else if(preg_match("/Damage Done: (.*)/", $involved[$counter], $matches)) 
    397407                    { 
    398408                        if($matches[1]) 
     
    404414                        $counter++; 
    405415                        $i = $counter; 
    406                         break;  
     416                        break; 
    407417                    } 
    408418                    else { //skip over this entry, it could read anything, we don't care. Handy if/when 
    409419                           //new mail fields get added and we aren't handling them yet. 
    410                         //$counter++; 
    411                         //$i = $counter; 
    412                     } 
    413                      
     420                        $counter++; 
     421                        $i = $counter; 
     422                    } 
     423 
    414424                    if ($this->needs_final_blow_) 
    415425                    { 
     
    421431                $ialliance = new Alliance(); 
    422432                $ialliance->add($ianame); 
    423                  
     433 
    424434                $icorp = new Corporation(); 
    425435                if (strcmp($icname, 'None') == 0) 
     
    432442                } 
    433443 
    434                 $ipilot = new Pilot();  
    435                  
     444                $ipilot = new Pilot(); 
     445 
    436446                if (strcmp($ipname, 'Unknown') == 0) 
    437447                { 
     
    439449                    { //for involved parties parsed that lack a pilot, but are actually POS or mobile warp disruptors 
    440450                        $ipname = $iwname; 
    441                         $ipilot->add($ipname, $icorp, $timestamp);  
     451                        $ipilot->add($ipname, $icorp, $timestamp); 
    442452                    } 
    443453                    else $this->error('Involved party has no name. (Party No. '.$ipilot_count.')'); 
     
    446456                { 
    447457                    //don't add pilot if the pilot's unknown or dud 
    448                     $ipilot->add($ipname, $icorp, $timestamp);  
     458                    $ipilot->add($ipname, $icorp, $timestamp); 
    449459                } 
    450460 
     
    541551                    $kill->setFBAllianceID($ialliance->getID()); 
    542552                } 
    543             }   
     553            } 
    544554        } 
    545555 
     
    601611            $this->dupeid_ = $kill->dupeid_; 
    602612        } 
    603  
     613        elseif ($id == -2) { 
     614            $this->error("An error has occurred. Please try again later."); 
     615            $id = 0; 
     616        } 
    604617        return $id; 
    605618    } 
  • dev/common/includes/class.parser.translate.php

    r370 r403  
    55        if (is_scalar($codes)) $codes= func_get_args(); 
    66        $str= ''; 
    7         foreach ($codes as $code) $str.= utf8_encode(html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8')); 
     7        foreach ($codes as $code) $str.= html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8'); 
    88        return $str; 
    99    } 
     
    163163                        'Guristas Purgatory Torpedo', 'Guristas Rift Torpedo', 
    164164                        'Guristas Thor Torpedo'); 
    165             $this->killmail_ = str_replace($search, $replace, $this->killmail_);     
     165            $this->killmail_ = str_replace($search, $replace, $this->killmail_); 
    166166        } 
    167          
     167 
    168168        return $this->killmail_; 
    169169    } 
  • dev/common/includes/globals.php

    r401 r403  
    77else 
    88{ 
    9         $svn_rev = '401'; 
     9        $svn_rev = '403'; 
    1010} 
    1111define('SVN_REV', $svn_rev);