403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.120
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : wpbetasites_mrakzqskir ( 1022)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/shark-admin/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/shark-admin/app/Http/Controllers/PageSpeedController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use App\Models\PageSpeedResult;
use App\Models\Website;
use Carbon\Carbon;

class PageSpeedController extends Controller
{
    

    public function handle(Request $request)
{
    $request->validate([
        'website_id' => 'required|integer',
        'refresh' => 'nullable|boolean',
    ]);

    $website_id = $request->input('website_id');
    $refresh = $request->boolean('refresh', false);

    $website = Website::findOrFail($website_id);
    $server_meta = json_decode($website->server_meta, true);

    // Generate URL safely
    $domain = $website->domain && $website->domain_status == 'completed'
        ? $website->domain
        : (!empty($server_meta['domain']) ? $server_meta['domain'].'.bloxby.io' : 'bloxby.io');
    $url = 'https://'.$domain;

    // Check cache first
    if (!$refresh) {
        $cached = PageSpeedResult::where('website_id', $website_id)->first();
        if ($cached) {
            return response()->json([
                'source' => 'cache',
                'url' => $url,
                'last_analysed_at' => $cached->last_analysed_at,
                'results' => $cached->response,
            ]);
        }
    }

    $apiKey = env('PAGESPEED_API_KEY', 'AIzaSyAhm4zVPk0uJNXS233ypn4PPOei-xEn4KM');
    $endpoint = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed";

    $results = [];

    // Fetch desktop score
    try {
        $desktopResp = Http::timeout(60)->get($endpoint, [
            'url' => $url,
            'key' => $apiKey,
            'strategy' => 'desktop',
        ]);

        $desktopData = $desktopResp->json();

        
        $results['desktop_score'] = $desktopData['lighthouseResult']['categories']['performance']['score'] ?? null;
        $results['desktop_interactive'] = $desktopData['lighthouseResult']['audits']['interactive']['displayValue'] ?? null;

    } catch (\Exception $e) {
        
        $results['desktop_score'] = null;
        $results['desktop_interactive'] = null;
    }

    // Fetch mobile interactive value
    try {
        $mobileResp = Http::timeout(60)->get($endpoint, [
            'url' => $url,
            'key' => $apiKey,
            'strategy' => 'mobile',
        ]);

        $mobileData = $mobileResp->json();

        $results['mobile_score'] = $mobileData['lighthouseResult']['categories']['performance']['score'] ?? null;
        $results['mobile_interactive'] = $mobileData['lighthouseResult']['audits']['interactive']['displayValue'] ?? null;

    } catch (\Exception $e) {
        
        $results['mobile_score'] =  null;
        $results['mobile_interactive'] = null;
    }

    // Save/update DB
    $result = PageSpeedResult::updateOrCreate(
        ['website_id' => $website_id],
        [
            'response' => $results,
            'last_analysed_at' => Carbon::now(),
        ]
    );

    return response()->json([
        'source' => 'live',
        'url' => $url,
        'last_analysed_at' => $result->last_analysed_at,
        'results' => $results,
    ]);
}

}

Youez - 2016 - github.com/yon3zu
LinuXploit