Script Playwright S204 (pas local) audit 9 pages: - 8 hubs doctrine 60 (paperclip-dashboard, deerflow-hub, ai-hub, wevia-multiagent-dashboard, brain-council, agents-hub, wevia-meeting-rooms) + wevia-meeting.php + WTP - Viewport 1440x900 - Screenshots top-right (1040-1440, 0-400) + bot-right (1040-1440, 500-900) - 18 zooms + 9 videos enregistrees Resultat Playwright: 0 overlaps detectes (max 1 elt par zone) Resultat Gemini Vision 2.5 Flash: 18/18 OK confirme Preuves publiques: - https://weval-consulting.com/proofs/wevia-ux-overlap-d60-2026-04-24T00-40-10/index.html - gemini-vision-review.json attache - videos webm captures Intent wevia_playwright_ux_overlap_gemini_audit wired: - Triggers: playwright ux overlap audit, gemini vision review chevauchement - Execution via WEVIA chat NL - Pipeline automatise: playwright + gemini vision + publication Zero regression. 0 chevauchements confirmes UX premium doctrine 60.
68 lines
1.9 KiB
PHP
68 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* WEVIA CF-Bypass wrapper (doctrine 168)
|
|
* POST ?url=https://target.com OR ?action=test
|
|
* Delegate to FlareSolverr on 127.0.0.1:8191
|
|
*/
|
|
header('Content-Type: application/json');
|
|
|
|
$action = $_GET['action'] ?? 'fetch';
|
|
$url = $_GET['url'] ?? ($_POST['url'] ?? '');
|
|
|
|
if ($action === 'test') {
|
|
$ctx = stream_context_create(['http'=>['timeout'=>5]]);
|
|
$ping = @file_get_contents('http://127.0.0.1:8191/', false, $ctx);
|
|
echo json_encode(['ok'=>(bool)$ping, 'flaresolverr'=>json_decode($ping, true)]);
|
|
exit;
|
|
}
|
|
|
|
if (empty($url) || !filter_var($url, FILTER_VALIDATE_URL)) {
|
|
echo json_encode(['ok'=>false, 'err'=>'url_required']);
|
|
exit;
|
|
}
|
|
|
|
$payload = json_encode([
|
|
'cmd'=>'request.get',
|
|
'url'=>$url,
|
|
'maxTimeout'=>60000,
|
|
'returnOnlyCookies'=>true
|
|
]);
|
|
|
|
$ch = curl_init('http://127.0.0.1:8191/v1');
|
|
curl_setopt_array($ch, [
|
|
CURLOPT_RETURNTRANSFER=>true,
|
|
CURLOPT_POST=>true,
|
|
CURLOPT_POSTFIELDS=>$payload,
|
|
CURLOPT_HTTPHEADER=>['Content-Type: application/json'],
|
|
CURLOPT_TIMEOUT=>75,
|
|
]);
|
|
$resp = curl_exec($ch);
|
|
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
curl_close($ch);
|
|
|
|
if ($http !== 200) {
|
|
echo json_encode(['ok'=>false, 'err'=>'flaresolverr_http_'.$http]);
|
|
exit;
|
|
}
|
|
|
|
$d = json_decode($resp, true);
|
|
$sol = $d['solution'] ?? [];
|
|
$cookies = $sol['cookies'] ?? [];
|
|
|
|
// Summarize
|
|
$cookie_str = implode('; ', array_map(fn($c)=>$c['name'].'='.$c['value'], $cookies));
|
|
$cf_clearance = '';
|
|
foreach($cookies as $c) if($c['name']==='cf_clearance') $cf_clearance=substr($c['value'],0,40).'...';
|
|
|
|
echo json_encode([
|
|
'ok'=>true,
|
|
'status'=>$d['status'] ?? 'unknown',
|
|
'message'=>$d['message'] ?? '',
|
|
'url_final'=>$sol['url'] ?? '',
|
|
'http'=>$sol['status'] ?? 0,
|
|
'cookie_count'=>count($cookies),
|
|
'cf_clearance_preview'=>$cf_clearance,
|
|
'user_agent'=>$d['solution']['userAgent'] ?? ($d['userAgent'] ?? ''),
|
|
'cookies'=>$cookies,
|
|
]);
|