From 8650d88a794497543b1333f3e4ad5ea9bf753071 Mon Sep 17 00:00:00 2001 From: floppydiskette Date: Thu, 8 Aug 2024 15:21:30 +0100 Subject: Finish that shit --- app/Http/Controllers/HomeController.php | 5 ++- app/View/Components/DiscordStatus.php | 66 +++++++++++++++++++++++++++++++++ app/View/Components/Weather.php | 44 ++++++++++++++++++++++ 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 app/View/Components/DiscordStatus.php create mode 100644 app/View/Components/Weather.php (limited to 'app') diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 7994c2c..e046d58 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -2,6 +2,9 @@ namespace App\Http\Controllers; +use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\Http; use Illuminate\View\View; use DateTime; @@ -24,7 +27,7 @@ class HomeController extends Controller { */ public function show(): View { return view('home', [ - 'age' => $this->returnAge() + 'age' => $this->returnAge(), ]); } } diff --git a/app/View/Components/DiscordStatus.php b/app/View/Components/DiscordStatus.php new file mode 100644 index 0000000..fac06ae --- /dev/null +++ b/app/View/Components/DiscordStatus.php @@ -0,0 +1,66 @@ +json(); + $presence = $data["data"]; + Cache::put('discord_presence', $presence, now()->addSeconds(60)); + return $presence; + } + + public function getOnlineStatus(): array { + $presence = $this->getDiscordPresence(); + return match ($presence["discord_status"]) { + "online", "dnd" => [ + "text" => "online", + "color" => "#02c83a" + ], + "idle" => [ + "text" => "away", + "color" => "#d77c20" + ], + default => [ + "text" => "offline", + "color" => "#ca3329" + ], + }; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string + { + return view('components.discord-status', [ + 'status' => $this->getOnlineStatus(), + ]); + } +} diff --git a/app/View/Components/Weather.php b/app/View/Components/Weather.php new file mode 100644 index 0000000..69be9fd --- /dev/null +++ b/app/View/Components/Weather.php @@ -0,0 +1,44 @@ +json(); + $conditions = $data["data"]["conditions"]; + Cache::put('weather_data', $conditions, now()->addSeconds(60)); + return $conditions; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string + { + return view('components.weather', [ + 'conditions' => $this->getWeatherData(), + ]); + } +} -- cgit v1.2.3-54-g00ecf