Mise en place des adresses poxy en BDD

This commit is contained in:
2024-11-24 14:16:22 +01:00
parent 614b5a5e7f
commit 780798ff25
3 changed files with 62 additions and 25 deletions

View File

@@ -23,7 +23,7 @@ class AccountController extends Controller
$email = $user->rambler_email;
$rambler_password = $user->rambler_password;
$proxy = 'http://xtjnmwvl-'.$id.':lp7iv1lq9glu@p.webshare.io:80';
$proxy = $user->proxy;
// Clés et jetons de Twitter
$TW_CONSUMER_KEY = '3nVuSoBZnx6U4vzUxf5w';
@@ -225,7 +225,7 @@ class AccountController extends Controller
return false;
}
}catch (\Exception $e){
return false;
return $e;
}
}
@@ -241,7 +241,7 @@ class AccountController extends Controller
'host' => 'imap.rambler.ru',
'port' => '993',
'encryption' => 'ssl',
'validate_cert' => true,
'validate_cert' => false,
'username' => $email,
'password' => $password,
'protocol' => 'imap'
@@ -320,5 +320,47 @@ class AccountController extends Controller
return view('accounts.view', compact('account', 'browser'));
}
public function proxy()
{
// Téléchargement de la liste
$response = Http::get('https://proxy.webshare.io/api/v2/proxy/list/download/zmfyvsfdtcijphrsokpjbbxdxrvtxynlkmtxpwsd/-/any/username/direct/-/');
if ($response->failed()) {
return response()->json(['error' => 'Impossible de télécharger la liste'], 500);
}
// Parsing de la liste
$proxyList = explode("\n", trim($response->body()));
// Récupérer les 100 premiers comptes dans l'ordre
$accounts = Account::orderBy('id')->take(100)->get();
// Vérifier si le nombre de proxies correspond au nombre de comptes
if (count($proxyList) < 100) {
return response()->json(['error' => 'Le fichier ne contient pas suffisamment de proxies'], 400);
}
// Mettre à jour chaque compte avec le proxy correspondant
foreach ($accounts as $index => $account) {
$proxyParts = explode(':', $proxyList[$index]);
if (count($proxyParts) !== 4) {
return response()->json(['error' => "Format incorrect sur la ligne ".$index + 1], 400);
}
[$ip, $port, $user, $password] = $proxyParts;
// Construire l'URL proxy
$proxyUrl = "http://{$user}:{$password}@{$ip}:{$port}";
$proxyLine = preg_replace('/\s+/', '', $proxyUrl);
// Mettre à jour la base de données
$account->proxy = $proxyLine;
$account->save();
}
return response()->json(['success' => 'Les 100 premiers proxies ont été mis à jour avec succès']);
}
}