%PDF- %PDF-
Direktori : /data/www_bck/varak.net_bck/broot.varak.net/ |
Current File : //data/www_bck/varak.net_bck/broot.varak.net/inventory.php |
<?php class Inventory { var $owner = ""; var $ap = 0; var $xm = 0; var $time; var $resonators; var $bursters; var $powerCubes; var $media; var $ultraStrikes; var $shields; var $heatsinks; var $multihacks; var $forceamps; var $linkamps; var $turrets; var $ADAs; var $JARVISes; var $keys = array(); public function __construct() { $this->time = time(); $this->resonators = array(new LeveledItem(1), new LeveledItem(2), new LeveledItem(3), new LeveledItem(4), new LeveledItem(5), new LeveledItem(6), new LeveledItem(7), new LeveledItem(8)); $this->bursters = array(new LeveledItem(1), new LeveledItem(2), new LeveledItem(3), new LeveledItem(4), new LeveledItem(5), new LeveledItem(6), new LeveledItem(7), new LeveledItem(8)); $this->powerCubes = array(new LeveledItem(1), new LeveledItem(2), new LeveledItem(3), new LeveledItem(4), new LeveledItem(5), new LeveledItem(6), new LeveledItem(7), new LeveledItem(8)); $this->media = array(new LeveledItem(1), new LeveledItem(2), new LeveledItem(3), new LeveledItem(4), new LeveledItem(5), new LeveledItem(6), new LeveledItem(7), new LeveledItem(8)); $this->ultraStrikes = array(new LeveledItem(1), new LeveledItem(2), new LeveledItem(3), new LeveledItem(4), new LeveledItem(5), new LeveledItem(6), new LeveledItem(7), new LeveledItem(8)); $this->shields = array(new ModItem("COMMON"), new ModItem("RARE"), new ModItem("VERY_RARE")); $this->heatsinks = array(new ModItem("COMMON"), new ModItem("RARE"), new ModItem("VERY_RARE")); $this->multihacks = array(new ModItem("COMMON"), new ModItem("RARE"), new ModItem("VERY_RARE")); $this->forceamps = array(new ModItem("RARE")); $this->linkamps = array(new ModItem("RARE")); $this->turrets = array(new ModItem("RARE")); $this->ADAs = array(new ModItem("VERY_RARE")); $this->JARVISes = array(new ModItem("VERY_RARE")); } } class LeveledItem { var $level = 0; var $amount = 0; public function __construct($level) { $this->level = $level; } } class ModItem { var $rarity = "VERY_COMMON"; var $amount = 0; public function __construct($rarity) { $this->rarity = $rarity; } } class KeyItem { var $portalGuid = ""; var $portalName = ""; var $amount = 0; } ini_set('mongo.native_long', 1); // Receiving of POST data $rawdata = file_get_contents("php://input"); if($rawdata == "") { echo "ERROR processing input data"; die; } $txt = gzdecode($rawdata); $fname = uniqid('inventory/inventory_'.time()."_"); file_put_contents("/var/www/hacks/".$fname.".txt.gz", $rawdata); $inventory = new Inventory(); $data = json_decode($txt); $inventory->ap = $data->currentAP; $inventory->xm = $data->currentXM; $inventory->owner = $data->playerName; foreach($data->rpcResult as $item) { if(isset($item[2]->resourceWithLevels)) { if($item[2]->resourceWithLevels->resourceType == "POWER_CUBE") { $lvl = $item[2]->resourceWithLevels->level-1; $inventory->powerCubes[$lvl]->amount++; } elseif($item[2]->resourceWithLevels->resourceType == "EMP_BURSTER") { $lvl = $item[2]->resourceWithLevels->level-1; $inventory->bursters[$lvl]->amount++; } elseif($item[2]->resourceWithLevels->resourceType == "EMITTER_A") { $lvl = $item[2]->resourceWithLevels->level-1; $inventory->resonators[$lvl]->amount++; } elseif($item[2]->resourceWithLevels->resourceType == "MEDIA") { $lvl = $item[2]->resourceWithLevels->level-1; $inventory->media[$lvl]->amount++; } elseif($item[2]->resourceWithLevels->resourceType == "ULTRA_STRIKE") { $lvl = $item[2]->resourceWithLevels->level-1; $inventory->ultraStrikes[$lvl]->amount++; } } elseif(isset($item[2]->modResource)) { if($item[2]->modResource->resourceType == "RES_SHIELD") { switch($item[2]->modResource->rarity) { case "COMMON": { $inventory->shields[0]->amount++; break; } case "RARE": { $inventory->shields[1]->amount++; break; } case "VERY_RARE": { $inventory->shields[2]->amount++; break; } } } elseif($item[2]->modResource->resourceType == "HEATSINK") { switch($item[2]->modResource->rarity) { case "COMMON": { $inventory->heatsinks[0]->amount++; break; } case "RARE": { $inventory->heatsinks[1]->amount++; break; } case "VERY_RARE": { $inventory->heatsinks[2]->amount++; break; } } } elseif($item[2]->modResource->resourceType == "MULTIHACK") { switch($item[2]->modResource->rarity) { case "COMMON": { $inventory->multihacks[0]->amount++; break; } case "RARE": { $inventory->multihacks[1]->amount++; break; } case "VERY_RARE": { $inventory->multihacks[2]->amount++; break; } } } elseif($item[2]->modResource->resourceType == "TURRET") { if($item[2]->modResource->rarity == "RARE") { $inventory->turrets[0]->amount++; } } elseif($item[2]->modResource->resourceType == "FORCE_AMP") { if($item[2]->modResource->rarity == "RARE") { $inventory->forceamps[0]->amount++; } } elseif($item[2]->modResource->resourceType == "LINK_AMPLIFIER") { if($item[2]->modResource->rarity == "RARE") { $inventory->linkamps[0]->amount++; } } } elseif(isset($item[2]->portalCoupler)) { // Try to find the key $found = false; foreach($inventory->keys as $key) { if($item[2]->portalCoupler->portalGuid == $key->portalGuid) { $key->amount++; $found = true; break; } } if(!$found) { $key = new KeyItem(); $key->portalGuid = $item[2]->portalCoupler->portalGuid; $key->portalName = $item[2]->portalCoupler->portalTitle; $key->amount = 1; $inventory->keys[] = $key; } } elseif(isset($item[2]->flipCard)) { if($item[2]->flipCard->flipCardType == "JARVIS") { $inventory->JARVISes[0]->amount++; } // Check ADA after hacking one elseif($item[2]->flipCard->flipCardType == "ADA") { $inventory->ADAs[0]->amount++; } } } $m = new MongoClient(); $db = $m->selectDB("ingress"); $col = $db->selectCollection("inventory"); $col->insert($inventory); // Insert into BEER items (temporary feature) // // Function Q function q($query,$assoc=0) { echo $query."\n"; $r = @mysql_query($query); if( mysql_errno() ) { $error = 'MYSQL ERROR #'.mysql_errno().' : <small>' . mysql_error(). "</small><br><VAR>$query</VAR>"; echo($error); return FALSE; } $queries++; if( strtolower(substr($query,0,6)) != 'select' ) return array(mysql_affected_rows(),mysql_insert_id()); $count = @mysql_num_rows($r); if( !$count ) return 0; if( $count == 1 ) { if( $assoc ) $f = mysql_fetch_assoc($r); else $f = mysql_fetch_row($r); mysql_free_result($r); if( count($f) == 1 ) { list($key) = array_keys($f); return $f[$key]; } else { $all = array(); $all[] = $f; return $all; } } else { $all = array(); for( $i = 0; $i < $count; $i++ ) { if( $assoc ) $f = mysql_fetch_assoc($r); else $f = mysql_fetch_row($r); $all[] = $f; } mysql_free_result($r); return $all; } } ob_start(); echo "=================== ".date("Y-m-d H:i:s")." ===================\n"; // CODE $conn = mysql_connect("localhost", "beer", "hubertus88"); mysql_select_db("beer", $conn); $usrinfo = q("select id, role from uzivatele where ingame_nick like '".$inventory->owner."'"); print_r($usrinfo); if($usrinfo && count($usrinfo) == 1 && $usrinfo[0][1] > 0) { $uid = $usrinfo[0][0]; $pid = q("insert into predmety_akce(`nazev`, `user_id`, `time`) values('Imported from Broot', $uid, NOW())"); print_r($pid); $pid = $pid[1]; // Resonators q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 1, ".$inventory->resonators[0]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 2, ".$inventory->resonators[1]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 3, ".$inventory->resonators[2]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 4, ".$inventory->resonators[3]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 5, ".$inventory->resonators[4]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 6, ".$inventory->resonators[5]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 7, ".$inventory->resonators[6]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 8, ".$inventory->resonators[7]->amount.", $pid)"); // Bursters q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 9, ".$inventory->bursters[0]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 10, ".$inventory->bursters[1]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 11, ".$inventory->bursters[2]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 12, ".$inventory->bursters[3]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 13, ".$inventory->bursters[4]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 14, ".$inventory->bursters[5]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 15, ".$inventory->bursters[6]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 16, ".$inventory->bursters[7]->amount.", $pid)"); // Shields q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 17, ".$inventory->shields[0]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 18, ".$inventory->shields[1]->amount.", $pid)"); q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 19, ".$inventory->shields[2]->amount.", $pid)"); // AP q("insert into predmety(`user`, `item_id`, `amount`, `akce`) values($uid, 20, ".$inventory->ap.", $pid)"); } mysql_close($conn); echo "\n\n"; $txt = ob_get_clean(); $f = fopen("debug.log", 'a'); fputs($f, $txt); fclose($f); ?>