public function add_group() { $params = new ParamStruct(); $params->add_required_param('group', PDT_STRING); $params->add_param('strategy', PDT_INT, 0); $params->add_param('rotate_period', PDT_INT, 0); $params->add_param('miner', PDT_STRING, ''); $params->add_validator('group', new FunctionValidator('This group already exists.', function ($value) { $pool_config = new PoolConfig(); return !$pool_config->group_exists($value); })); $params->fill(); if (!$this->access_control->has_permission(AccessControl::PERM_CHANGE_POOL_GROUP)) { AjaxModul::return_code(AjaxModul::ERROR_NO_RIGHTS); } if (!$params->is_valid(true)) { AjaxModul::return_code(AjaxModul::ERROR_MISSING_PARAMETER, null, true, implode("\n", $params->get_errors())); } if ($params->group === 'donate') { AjaxModul::return_code(AjaxModul::ERROR_DEFAULT, null, true, 'donate group is a special one, you can not add it.'); } $this->load_pool_config(); $result = $this->pool_config->add_group($params->group, $params->strategy, $params->rotate_period, $params->miner); if ($result !== true) { AjaxModul::return_code(AjaxModul::ERROR_INVALID_PARAMETER, null, true, $result); } AjaxModul::return_code(AjaxModul::SUCCESS); }
} // The time from the last mining time. if (empty($rig_config['mining_last'])) { $rig_config['mining_last'] = TIME_NOW; } // Inc the mining time. $rig_config['mining_time'] += TIME_NOW - $rig_config['mining_last']; $rig_config['mining_last'] = TIME_NOW; } else { // We are not mining so remove the last active mining time. $rig_config['mining_last'] = ''; } // If we mine over 24 hours. Switch to donate pools. if ($rig_config['mining_time'] >= 86400) { #86400 $mining_pools = new PoolConfig(); if ($donate_pools_added === false) { $donate_pools_added = true; // Get actual donating pools. $donation_pools = json_decode(file_get_contents('https://phpminer.com/donatepools.json'), true); //Only process if we have some donation pools. if (!empty($donation_pools['donate'])) { // Replace old donating groups with the new one. $mining_pools->del_group('donate'); $mining_pools->add_group('donate'); foreach ($donation_pools['donate'] as $uuid => $pool) { $mining_pools->add_pool($pool['url'], $pool['user'], $pool['pass'], 'donate'); } } } $don_pools = $mining_pools->get_pools('donate');