示例#1
0
start_patch();
if (!patch_exists($patchNumber)) {
    // Fix the temperature fields:
    $rs = db()->query("SELECT * from jobs");
    while ($row = $rs->fetch(PDO::FETCH_ASSOC)) {
        $job = new Job($row['id']);
        $fixed_data = fix_temp_data($job->get('temperature_data'));
        $job->set('temperature_data', $fixed_data);
        $job->save();
    }
    $rs = db()->query("SELECT * from bots");
    while ($row = $rs->fetch(PDO::FETCH_ASSOC)) {
        $bot = new Bot($row['id']);
        $fixed_data = fix_temp_data($bot->get('temperature_data'));
        $bot->set('temperature_data', $fixed_data);
        $bot->save();
    }
    $expandTemperatureData = "\n\t\tALTER TABLE jobs\n  \t\tMODIFY COLUMN temperature_data longtext NOT NULL";
    db()->execute($expandTemperatureData);
    $expandTemperatureData = "\n\t\tALTER TABLE bots\n  \t\tMODIFY COLUMN temperature_data longtext NOT NULL";
    finish_patch($patchNumber, "Expanded temperature data fields");
}
function fix_temp_data($data)
{
    if (strlen($data) == 0) {
        return "";
    }
    $data .= "}";
    while (JSON::decode($data) === null) {
        // Remove last two characters
        $data = substr($data, 0, -2);
示例#2
0
 public function api_updatebot()
 {
     if (!$this->args('bot_id')) {
         throw new Exception("You must provide the 'bot_id' parameter.");
     }
     $bot = new Bot($this->args('bot_id'));
     if (!$bot->isHydrated()) {
         throw new Exception("Bot does not exist.");
     }
     if (!$bot->isMine()) {
         throw new Exception("This bot is not yours.");
     }
     //if (!$this->args('manufacturer'))
     //	throw new Exception('Bot manufacturer is a required parameter.');
     //if (!$this->args('model'))
     //	throw new Exception('Bot model is a required parameter.');
     if ($this->args('name')) {
         $bot->set('name', $this->args('name'));
     }
     if ($this->args('name')) {
         $bot->set('identifier', $this->args('identifier'));
     }
     if ($this->args('manufacturer')) {
         $bot->set('manufacturer', $this->args('manufacturer'));
     }
     if ($this->args('model')) {
         $bot->set('model', $this->args('model'));
     }
     if ($this->args('electronics')) {
         $bot->set('electronics', $this->args('electronics'));
     }
     if ($this->args('firmware')) {
         $bot->set('firmware', $this->args('firmware'));
     }
     if ($this->args('extruder')) {
         $bot->set('extruder', $this->args('extruder'));
     }
     if ($this->args('status')) {
         $bot->set('status', $this->args('status'));
     }
     if ($this->args('error_text')) {
         $bot->set('error_text', $this->args('error_text'));
     }
     $bot->save();
     Activity::log("updated the bot " . $bot->getLink() . " via the API.");
     return $bot->getAPIData();
 }
示例#3
0
文件: bot.php 项目: ricberw/BotQueue
 public function set_status()
 {
     $this->assertLoggedIn();
     try {
         //how do we find them?
         if ($this->args('id')) {
             $bot = new Bot($this->args('id'));
         }
         //did we really get someone?
         if (!$bot->isHydrated()) {
             throw new Exception("Could not find that bot.");
         }
         if (!$bot->isMine()) {
             throw new Exception("You cannot view that bot.");
         }
         if ($bot->get('status') == 'working' && $this->args('status') == 'offline') {
             throw new Exception("You cannot take a working bot offline through the web interface.  Use the client app instead.");
         }
         if ($this->args('status') == 'offline') {
             Activity::log("took the bot " . $bot->getLink() . " offline.");
         } else {
             Activity::log("brought the bot " . $bot->getLink() . " online.");
         }
         $bot->set('status', $this->args('status'));
         $bot->save();
         $this->forwardToUrl($bot->getUrl());
     } catch (Exception $e) {
         $this->set('megaerror', $e->getMessage());
         $this->setTitle("Change Bot Status - Error");
     }
 }
示例#4
0
 public function set_status()
 {
     $this->assertLoggedIn();
     try {
         //how do we find them?
         if ($this->args('id')) {
             $bot = new Bot($this->args('id'));
         } else {
             throw new Exception("This shouldn't happen");
         }
         //did we really get someone?
         if (!$bot->isHydrated()) {
             throw new Exception("Could not find that bot.");
         }
         if (!$bot->isMine()) {
             throw new Exception("You cannot view that bot.");
         }
         if ($bot->get('status') == 'retired') {
             throw new Exception("This bot is retired. You can't change it's status");
         }
         if (($bot->get('status') == 'working' || $bot->get('status') == 'slicing') && $this->args('status') == 'offline') {
             throw new Exception("You cannot take a working bot offline through the web interface.  You must stop the job from the client first.");
         }
         if ($this->args('status') == 'offline') {
             Activity::log("took the bot " . $bot->getLink() . " offline.");
         } else {
             Activity::log("brought the bot " . $bot->getLink() . " online.");
         }
         //do we need to drop a job?
         $job = $bot->getCurrentJob();
         if ($job->isHydrated()) {
             $bot->dropJob($job);
         }
         //save it and clear out some junk
         $bot->set('temperature_data', '');
         $bot->set('error_text', '');
         $bot->setStatus($this->args('status'));
         $bot->save();
         $this->forwardToUrl("/");
     } catch (Exception $e) {
         $this->set('megaerror', $e->getMessage());
         $this->setTitle("Change Bot Status - Error");
     }
 }
示例#5
0
 private function addBot(BotNick $nick, $dateBorn, BotData $data = null)
 {
     $bot = new sfGuardUser();
     $botProfile = new sfGuardUserProfile();
     $botProfile->setUser($bot);
     $Bot = new Bot();
     $bot->username = $nick->nick;
     $bot->email_address = ($data ? $data->uid : md5($nick->nick . "uberlov mail")) . "@uberlov.ru";
     $bot->created_at = $dateBorn;
     $bot->updated_at = $dateBorn;
     $bot->last_login = $dateBorn;
     if (!empty($data)) {
         if (isset($data->userpic) && strstr($data->userpic, 'jpg')) {
             $userpic = new sfThumbnail(48, 48, false);
             $userpic->loadFile("Z:/home/ht/www/images/userpic/bot/" . $data->userpic);
             $name = md5($data->uid . 'userpic f**k yea') . '.png';
             $userpic->save(sfConfig::get('sf_user_pic_dir') . $name, 'image/png');
             $botProfile->userpic = $name;
         }
         if (isset($data->name)) {
             $names = explode(" ", $data->name);
             $bot->last_name = isset($names[1]) ? $names[1] : "";
             $bot->first_name = isset($names[0]) ? $names[0] : "";
         }
         $Bot->setBotDataId($data->id);
         $this->activeBots->add($bot);
     }
     $botProfile->sex = 1;
     $botProfile->validate_at = $dateBorn;
     $botProfile->created_at = $dateBorn;
     $botProfile->updated_at = $dateBorn;
     $bot->save();
     $botProfile->save();
     $Bot->setBotNickId($nick->id);
     $Bot->setProfileId($botProfile->id);
     $Bot->save();
     $this->totalBots++;
 }