aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfloppydiskette <floppydisk@hyprcat.net>2024-08-31 00:47:01 +0100
committerfloppydiskette <floppydisk@hyprcat.net>2024-08-31 00:47:01 +0100
commita715ae58afa15a98006e2271522bef5a00ca071f (patch)
tree5e64ac5ac9e30fd14b96f8e88d3f449fda223ac1
parent97d8f4447d0839d3f251a7dfc2f5f123c36c4d5e (diff)
Handle any errors if unable to get presence or weather data
-rw-r--r--app/View/Components/DiscordStatus.php4
-rw-r--r--app/View/Components/Weather.php16
-rw-r--r--resources/views/components/discord-status.blade.php8
-rw-r--r--resources/views/components/weather.blade.php18
4 files changed, 31 insertions, 15 deletions
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 @@ class DiscordStatus extends Component
$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 @@ class Weather extends Component
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 @@
-<span>I'm</span>
-<h2 class="online-status" style="color: {{ $status["color"] }};text-shadow: var(--firefox-shadow) {{ $status["color"] }}4f !important">{{ $status["text"] }}!</h2>
+@if($status == null)
+ <p>Status Unavailable</p>
+@else
+ <span>I'm</span>
+ <h2 class="online-status" style="color: {{ $status["color"] }};text-shadow: var(--firefox-shadow) {{ $status["color"] }}4f !important">{{ $status["text"] }}!</h2>
+@endif
<p><strong>Time in Britain:</strong> <span id="clock"></span></p>
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 @@
<p><strong>Weather Conditions:</strong></p>
<hr style="margin: 4px 0">
-<p><strong>Temperature:</strong> {{ round(($conditions[0]["temp"] - 32) * (5/9), 1) }} degC</p>
-<p><strong>Rain:</strong> {{ ($conditions[0]["rain_rate_last"] * 0.2) }}mm/hr ({{ $conditions[0]["rainfall_daily"] }}mm today)</p>
-@if ($conditions[0]["wind_speed_last"] != 0)
- <p><strong>Wind:</strong> {{ round($conditions[0]["wind_speed_last"], 1) }}mph ({{ $conditions[0]["wind_dir_last"] }} deg)</p>
+@if($conditions == null)
+ <p>Data Unavailable</p>
@else
- <p><strong>Wind:</strong> 0mph</p>
+ <p><strong>Temperature:</strong> {{ round(($conditions[0]["temp"] - 32) * (5/9), 1) }} degC</p>
+ <p><strong>Rain:</strong> {{ ($conditions[0]["rain_rate_last"] * 0.2) }}mm/hr ({{ $conditions[0]["rainfall_daily"] }}mm today)</p>
+ @if ($conditions[0]["wind_speed_last"] != 0)
+ <p><strong>Wind:</strong> {{ round($conditions[0]["wind_speed_last"], 1) }}mph ({{ $conditions[0]["wind_dir_last"] }} deg)</p>
+ @else
+ <p><strong>Wind:</strong> 0mph</p>
+ @endif
+ <p><strong>Humidity:</strong> {{ round($conditions[0]["hum"], 1) }}%</p>
+ <p><strong>Pressure:</strong> {{ round($conditions[2]["bar_sea_level"], 1) }} inHg</p>
@endif
-<p><strong>Humidity:</strong> {{ round($conditions[0]["hum"], 1) }}%</p>
-<p><strong>Pressure:</strong> {{ round($conditions[2]["bar_sea_level"], 1) }} inHg</p>