Finish that shit
This commit is contained in:
parent
39d7895fad
commit
5472d7c7c7
16 changed files with 519 additions and 297 deletions
|
@ -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 @@ function returnAge(): int {
|
|||
*/
|
||||
public function show(): View {
|
||||
return view('home', [
|
||||
'age' => $this->returnAge()
|
||||
'age' => $this->returnAge(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
66
app/View/Components/DiscordStatus.php
Normal file
66
app/View/Components/DiscordStatus.php
Normal file
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class DiscordStatus extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns current Discord presence from Lanyard API
|
||||
* @return array|mixed
|
||||
*/
|
||||
public function getDiscordPresence(): mixed {
|
||||
// If it's already cached just return that
|
||||
if (Cache::has('discord_presence')) {
|
||||
return Cache::get('discord_presence');
|
||||
}
|
||||
|
||||
$response = Http::get('https://api.lanyard.rest/v1/users/' . Config::get('services.lanyard.user_id'));
|
||||
$data = $response->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(),
|
||||
]);
|
||||
}
|
||||
}
|
44
app/View/Components/Weather.php
Normal file
44
app/View/Components/Weather.php
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class Weather extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function getWeatherData(): mixed {
|
||||
// If it's already cached just return that
|
||||
if (Cache::has('weather_data')) {
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*/
|
||||
public function render(): View|Closure|string
|
||||
{
|
||||
return view('components.weather', [
|
||||
'conditions' => $this->getWeatherData(),
|
||||
]);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue