Files
wticreatorstudio/Modules/Livestream/Http/Controllers/LivestreamController.php
2024-04-25 16:48:43 +08:00

75 lines
2.2 KiB
PHP

<?php
namespace Modules\Livestream\Http\Controllers;
use GuzzleHttp\Client;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Str;
use Modules\Livestream\Entities\RestreamSetting;
use Modules\Livestream\Entities\RestreamToken;
use Modules\Livestream\Facades\Restream;
class LivestreamController extends Controller
{
public function index()
{
$isConnected = Restream::isConnected();
$settings = RestreamSetting::first();
$connection = session('restream-connect-result');
if (!empty($connection)) {
$message = session('restream-connect-message');
Session::forget(['restream-connect-result', 'restream-connect-message']);
Session::save();
return view('livestream::index', compact('connection', 'message', 'settings', 'isConnected'));
}
return view('livestream::index', compact('settings', 'isConnected'));
}
public function platforms(Request $request)
{
$client = new Client();
$response = $client->get('https://api.restream.io/v2/platform/all');
$data = json_decode($response->getBody());
Log::info($data);
return redirect()->route('livestream.index');
}
public function servers(Request $request)
{
$client = new Client();
$response = $client->get('https://api.restream.io/v2/server/all');
$data = json_decode($response->getBody());
Log::info($data);
return redirect()->route('livestream.index');
}
public function channels(Request $request)
{
$token = RestreamToken::first();
if ($token) {
$client = new Client();
$response = $client->get('https://api.restream.io/v2/user/channel/all', [
'headers' => [
'Authorization' => "{$token->type} {$token->access_token}",
],
]);
$data = json_decode($response->getBody());
Log::info($data);
}
return redirect()->route('livestream.index');
}
}