[#2][#5][#7] dev al arround to add lots of functionality, still have some work on the online proxy

This commit is contained in:
2025-03-30 22:52:35 +03:00
parent 7c56f25053
commit d039e5082a
12 changed files with 832 additions and 68 deletions
+29 -21
View File
@@ -81,42 +81,50 @@ class TestProxies extends Command
protected function testProxy($proxy, &$results)
{
return new \GuzzleHttp\Promise\Promise(function() use ($proxy, &$results) {
try {
$client = new \GuzzleHttp\Client([
'proxy' => $proxy->proxy,
'timeout' => $this->timeout,
'verify' => false,
'http_errors' => false
]);
$client = new \GuzzleHttp\Client([
'timeout' => $this->timeout,
'verify' => false,
'http_errors' => false
]);
$response = $client->get($this->testUrl);
return $client->getAsync($this->testUrl, [
'proxy' => $proxy->proxy
])->then(
function($response) use ($proxy, &$results) {
$body = json_decode($response->getBody(), true);
if ($response->getStatusCode() === 200 && isset($body['unique_id'])) {
// Proxy is working, increase score
$proxy->increment('score');
$proxy->update(['last_tested_at' => now()]);
$results['working']++;
} else {
// Proxy returned invalid response
$proxy->decrement('score');
$proxy->update(['last_tested_at' => now()]);
$results['failed']++;
}
} catch (\GuzzleHttp\Exception\ConnectException $e) {
// Connection failed
$proxy->decrement('score');
$results['failed']++;
} catch (\GuzzleHttp\Exception\RequestException $e) {
if ($e->getCode() === CURLE_OPERATION_TIMEDOUT) {
// Request timed out
$proxy->decrement('score');
$results['timeout']++;
} else {
// Other request error
},
function($exception) use ($proxy, &$results) {
if ($exception instanceof \GuzzleHttp\Exception\ConnectException) {
// Connection failed
$proxy->decrement('score');
$proxy->update(['last_tested_at' => now()]);
$results['failed']++;
} elseif ($exception instanceof \GuzzleHttp\Exception\RequestException) {
if ($exception->getCode() === CURLE_OPERATION_TIMEDOUT) {
// Request timed out
$proxy->decrement('score');
$proxy->update(['last_tested_at' => now()]);
$results['timeout']++;
} else {
// Other request error
$proxy->decrement('score');
$proxy->update(['last_tested_at' => now()]);
$results['failed']++;
}
}
}
});
);
}
}