39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
class LiveStatusController extends Controller
|
|
{
|
|
public function __invoke()
|
|
{
|
|
// Wir cachen das Ergebnis für 2 Minuten, um die APIs nicht zu spammen
|
|
return Cache::remember('live_status', 120, function () {
|
|
return [
|
|
'twitch' => $this->checkTwitch('bratander1ste'),
|
|
'kick' => $this->checkKick('Bratander1ste'),
|
|
];
|
|
});
|
|
}
|
|
|
|
private function checkTwitch($username)
|
|
{
|
|
// Hinweis: Benötigt TWITCH_CLIENT_ID und TWITCH_CLIENT_SECRET in der .env
|
|
// Für einen schnellen Test ohne API-Key kannst du hier 'false' zurückgeben
|
|
return false;
|
|
}
|
|
|
|
private function checkKick($username)
|
|
{
|
|
try {
|
|
$response = Http::get("https://kick.com/api/v1/channels/{$username}");
|
|
return $response->json()['livestream'] !== null;
|
|
} catch (\Exception $e) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|