wip
This commit is contained in:
1 parent
267b5b9583
commit
911b515021
15 files changed
+1048
-56
No files matched your search
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class CloudflareSolverService
|
||||
{
|
||||
protected string $solverUrl = 'http://192.168.178.145:8191/v1';
|
||||
|
||||
/**
|
||||
* Holt die Daten und gibt das extrahierte JSON als PHP-Array zurück.
|
||||
* Wenn etwas schiefgeht, wird null zurückgegeben.
|
||||
*/
|
||||
public function getJsonFromUrl(string $targetUrl): ?array
|
||||
{
|
||||
try {
|
||||
$response = Http::withHeaders([
|
||||
'Content-Type' => 'application/json',
|
||||
])->timeout(120)->post($this->solverUrl, [
|
||||
'cmd' => 'request.get',
|
||||
'url' => $targetUrl,
|
||||
'maxTimeout' => 90000,
|
||||
]);
|
||||
|
||||
if ($response->failed()) {
|
||||
Log::error('FlareSolverr Verbindungsfehler. Status: '.$response->status());
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
if (isset($data['status']) && $data['status'] === 'ok') {
|
||||
$htmlContent = $data['solution']['response'];
|
||||
|
||||
// JSON aus dem HTML isolieren
|
||||
if (preg_match('/\{.*\}/s', $htmlContent, $matches)) {
|
||||
$rawJson = $matches[0];
|
||||
$decoded = json_decode($rawJson, true);
|
||||
|
||||
if (json_last_error() === JSON_ERROR_NONE) {
|
||||
// HIER: Erfolgreiche Rückgabe des Arrays!
|
||||
return $decoded;
|
||||
}
|
||||
|
||||
Log::error('Extrahiertes Textfragment ist kein gültiges JSON.');
|
||||
} else {
|
||||
Log::error('Kein JSON-Muster { ... } im HTML gefunden.');
|
||||
}
|
||||
} else {
|
||||
Log::error('FlareSolverr konnte die Seite nicht umgehen: '.json_encode($data));
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error('PHP Exception im CloudflareSolverService: '.$e->getMessage());
|
||||
}
|
||||
|
||||
// Falls irgendwo ein Fehler auftrat, geben wir null zurück
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
flaresolverr-server:
|
||||
image: flaresolverr/flaresolverr:latest # Aktualisiert auf die neueste Version
|
||||
container_name: flaresolverr_standalone
|
||||
ports:
|
||||
- "8191:8191"
|
||||
environment:
|
||||
- LOG_LEVEL=info
|
||||
- TZ=Europe/Vienna
|
||||
- HOST=0.0.0.0
|
||||
restart: always
|
||||
Reference in new issue
Block a user