public function safeUp() { $scope11 = ProxiesScopes::findOne(11); if (empty($scope11)) { $scope11 = new ProxiesScopes(); $scope11->id = 11; } $scope11->country = 'usa'; if (!$scope11->save()) { echo 'FAIL'; return false; } $proxies = $this->_getGoodProxies(11); foreach ($proxies as $p) { $proxy = Proxies::find()->where(['host' => $p])->limit(1)->one(); if (!$proxy) { echo PHP_EOL . $p; if ($this->_saveProxy($p, 11)) { echo ' - CREATED'; } else { echo ' - FAIL'; } } else { echo PHP_EOL . "proxy: {$p} already isset"; } } $scope30 = new ProxiesScopes(); $scope30->country = 'usa'; $scope30->save(); $proxies = $this->_getGoodProxies(30); foreach ($proxies as $p) { $proxy = Proxies::find()->where(['host' => $p])->limit(1)->one(); if (!$proxy) { echo PHP_EOL . $p; if ($this->_saveProxy($p, 30)) { echo ' - CREATED'; } else { echo ' - FAIL'; } } else { echo PHP_EOL . "proxy: {$p} already isset"; } } }
public function safeDown() { foreach ([31, 32] as $scopeId) { echo PHP_EOL . "Proxy scope: {$scopeId} delete - "; $pDel = Proxies::deleteAll("scope_id = {$scopeId}"); $sDel = ProxiesScopes::deleteAll("id = {$scopeId}"); echo $pDel && $sDel ? "OK" : "FAIL"; } return true; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = ProxiesScopes::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'active' => $this->active]); $query->andFilterWhere(['like', 'country', $this->country])->andFilterWhere(['like', 'description', $this->description]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getScope() { return $this->hasOne(ProxiesScopes::className(), ['id' => 'scope_id']); }
private function restructuring() { $countAllExist = $countToDelete = 0; $working = $this->getWorkingProxies(); // var_dump($working); // die(); $ourProxies = []; $tmpProxies = ProxyAdwords::find()->all(); $oldProxies = []; $logins = []; if (!empty($tmpProxies)) { foreach ($tmpProxies as $proxy) { $ourProxies[$proxy->host] = $proxy; if (!isset($logins[$proxy->login])) { $logins[$proxy->login] = ArrayHelper::toArray($proxy); } } } $tmpProxies = ProxyBuy::find()->all(); if (!empty($tmpProxies)) { foreach ($tmpProxies as $proxy) { $ourProxies[$proxy->host] = $proxy; if (!isset($logins[$proxy->login])) { $logins[$proxy->login] = ArrayHelper::toArray($proxy); } } } $tmpProxies = ProxySpider::find()->all(); if (!empty($tmpProxies)) { foreach ($tmpProxies as $proxy) { $ourProxies[$proxy->host] = $proxy; if (!isset($logins[$proxy->login])) { $logins[$proxy->login] = ArrayHelper::toArray($proxy); } } } $tmpProxies = ProxyUkraine::find()->all(); if (!empty($tmpProxies)) { foreach ($tmpProxies as $proxy) { $ourProxies[$proxy->host] = $proxy; if (!isset($logins[$proxy->login])) { $logins[$proxy->login] = ArrayHelper::toArray($proxy); } } } $tmpProxies = ProxyUsa::find()->all(); if (!empty($tmpProxies)) { foreach ($tmpProxies as $proxy) { $ourProxies[$proxy->host] = $proxy; if (!isset($logins[$proxy->login])) { $logins[$proxy->login] = ArrayHelper::toArray($proxy); } } } $resProxies = []; $workingIPs = []; $scopeId = 1; $scopes = []; $counter = 1; if (!empty($ourProxies)) { foreach ($working as $country => $proxies) { $scopes[$scopeId] = ['id' => $scopeId, 'country' => $country]; foreach ($proxies as $proxy => $login) { $workingIPs[] = $proxy; $p = []; $p['country'] = $country; $p['scope_id'] = $scopeId; if (array_key_exists($proxy, $ourProxies)) { $tmpP = ArrayHelper::toArray($ourProxies[$proxy]); $p['host'] = $tmpP['host']; $p['login'] = $tmpP['login']; $p['password'] = $tmpP['password']; $p['port'] = $tmpP['port']; } else { $p['host'] = $proxy; $p['login'] = $login; if (array_key_exists($login, $logins)) { $p['password'] = $logins[$login]['password']; $p['port'] = $logins[$login]['port']; } else { $p['password'] = ''; $p['port'] = '0'; echo PHP_EOL . $login; } } $resProxies[] = $p; $countAllExist++; $counter++; if ($counter > 50) { $scopeId++; $scopes[$scopeId] = ['id' => $scopeId, 'country' => $country]; $counter = 0; } } $scopeId++; } } foreach ($ourProxies as $ip => $proxy) { if (!in_array($ip, $workingIPs)) { $countToDelete++; } } if (!empty($scopes)) { ProxiesScopes::getDb()->createCommand()->batchInsert(ProxiesScopes::tableName(), ['id', 'country'], $scopes)->execute(); } if (!empty($resProxies)) { Proxies::getDb()->createCommand()->batchInsert(Proxies::tableName(), ['country', 'scope_id', 'host', 'login', 'password', 'port'], $resProxies)->execute(); } echo "exists proxies: " . count($ourProxies) . "; All email: " . $countAllExist . "; Diff: " . (count($ourProxies) - $countAllExist) . "; Delete: {$countToDelete}" . PHP_EOL; $toFix = Proxies::find()->where(['password' => ''])->all(); foreach ($toFix as $proxy) { echo PHP_EOL . $login; $pr = Proxies::find()->where(['login' => $proxy->login])->limit(1)->one(); if (!is_null($pr)) { $proxy->port = $pr->port; $proxy->password = $pr->password; $proxy->save(); echo ' fixed'; } } }