diff --git a/app/View/Components/DiscordStatus.php b/app/View/Components/DiscordStatus.php index fac06ae..3ad3a3b 100644 --- a/app/View/Components/DiscordStatus.php +++ b/app/View/Components/DiscordStatus.php @@ -31,13 +31,15 @@ public function getDiscordPresence(): mixed { $response = Http::get('https://api.lanyard.rest/v1/users/' . Config::get('services.lanyard.user_id')); $data = $response->json(); + if (!isset($data["data"])) return null; $presence = $data["data"]; Cache::put('discord_presence', $presence, now()->addSeconds(60)); return $presence; } - public function getOnlineStatus(): array { + public function getOnlineStatus(): ?array { $presence = $this->getDiscordPresence(); + if ($presence == null) return null; return match ($presence["discord_status"]) { "online", "dnd" => [ "text" => "online", diff --git a/app/View/Components/Weather.php b/app/View/Components/Weather.php index 69be9fd..dcf3ff7 100644 --- a/app/View/Components/Weather.php +++ b/app/View/Components/Weather.php @@ -3,6 +3,7 @@ namespace App\View\Components; use Closure; +use Exception; use Illuminate\Contracts\View\View; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Config; @@ -25,11 +26,16 @@ public function getWeatherData(): mixed { return Cache::get('weather_data'); } - $response = Http::get('http://'. Config::get('services.weatherlink') . '/v1/current_conditions'); - $data = $response->json(); - $conditions = $data["data"]["conditions"]; - Cache::put('weather_data', $conditions, now()->addSeconds(60)); - return $conditions; + try { + $response = Http::get('http://' . Config::get('services.weatherlink') . '/v1/current_conditions'); + $data = $response->json(); + $conditions = $data["data"]["conditions"]; + Cache::put('weather_data', $conditions, now()->addSeconds(60)); + return $conditions; + } catch (Exception $ex) { + return null; + } + } /** diff --git a/resources/views/components/discord-status.blade.php b/resources/views/components/discord-status.blade.php index 00d2c7a..868fc03 100644 --- a/resources/views/components/discord-status.blade.php +++ b/resources/views/components/discord-status.blade.php @@ -1,3 +1,7 @@ -I'm -

{{ $status["text"] }}!

+@if($status == null) +

Status Unavailable

+@else + I'm +

{{ $status["text"] }}!

+@endif

Time in Britain:

diff --git a/resources/views/components/weather.blade.php b/resources/views/components/weather.blade.php index b4dfcaa..879f1cb 100644 --- a/resources/views/components/weather.blade.php +++ b/resources/views/components/weather.blade.php @@ -1,11 +1,15 @@

Weather Conditions:


-

Temperature: {{ round(($conditions[0]["temp"] - 32) * (5/9), 1) }} degC

-

Rain: {{ ($conditions[0]["rain_rate_last"] * 0.2) }}mm/hr ({{ $conditions[0]["rainfall_daily"] }}mm today)

-@if ($conditions[0]["wind_speed_last"] != 0) -

Wind: {{ round($conditions[0]["wind_speed_last"], 1) }}mph ({{ $conditions[0]["wind_dir_last"] }} deg)

+@if($conditions == null) +

Data Unavailable

@else -

Wind: 0mph

+

Temperature: {{ round(($conditions[0]["temp"] - 32) * (5/9), 1) }} degC

+

Rain: {{ ($conditions[0]["rain_rate_last"] * 0.2) }}mm/hr ({{ $conditions[0]["rainfall_daily"] }}mm today)

+ @if ($conditions[0]["wind_speed_last"] != 0) +

Wind: {{ round($conditions[0]["wind_speed_last"], 1) }}mph ({{ $conditions[0]["wind_dir_last"] }} deg)

+ @else +

Wind: 0mph

+ @endif +

Humidity: {{ round($conditions[0]["hum"], 1) }}%

+

Pressure: {{ round($conditions[2]["bar_sea_level"], 1) }} inHg

@endif -

Humidity: {{ round($conditions[0]["hum"], 1) }}%

-

Pressure: {{ round($conditions[2]["bar_sea_level"], 1) }} inHg