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;
 }
Example #4
0
 /**
  * @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';
         }
     }
 }