$output['ping'], 'download' => $output['download'] / 1000000, 'upload' => $output['upload'] / 1000000 ]); } catch(JsonException $e) { Log::error('Failed to parse speedtest JSON'); Log::error($output); } catch(Exception $e) { Log::error($e->getMessage()); } return (isset($test)) ? $test : false; } public static function output() { $server = SettingsHelper::get('server')['value']; if($server != '' && $server != false) { $server = explode(',', $server); $server = $server[array_rand($server)]; return shell_exec('speedtest-cli --json --server ' . $server); } return shell_exec('speedtest-cli --json'); } public static function latest() { $data = Speedtest::latest()->get(); if($data->isEmpty()) { return false; } return $data->first(); } public static function parseUnits($input) { $input = explode(' ', $input); $val = $input[0]; $unit = explode('/', $input[1])[0]; switch($unit) { case 'Mbyte': $val = $val * 8; break; case 'Kbit': $val = $val / 1000; break; case 'Kbyte': $val = $val / 125; break; case 'Mbit': default: break; } return [ 'val' => $val, 'unit' => 'Mbit/s' ]; } }