|
2 | 2 |
|
3 | 3 | namespace App\Http\Controllers; |
4 | 4 |
|
| 5 | +use App\Http\Requests\PartyPlayYouTubeRequest; |
5 | 6 | use App\Http\Requests\PartyRequest; |
6 | 7 | use App\Http\Requests\SearchRequest; |
7 | 8 | use App\Http\Resources\V1\UpcomingSongResource; |
| 9 | +use App\Jobs\PartyPlayYouTubeVideo; |
8 | 10 | use App\Models\Party; |
9 | 11 | use App\Models\UpcomingSong; |
10 | 12 | use App\Services\SpotifySearchService; |
@@ -84,6 +86,42 @@ public function tv(Party $party) |
84 | 86 | ]); |
85 | 87 | } |
86 | 88 |
|
| 89 | + public function youtube(Request $request, Party $party) |
| 90 | + { |
| 91 | + return view('parties.youtube', [ |
| 92 | + 'party' => $party, |
| 93 | + 'canManage' => $party->canBeManagedBy($request->user()), |
| 94 | + ]); |
| 95 | + } |
| 96 | + |
| 97 | + public function youtube_play(PartyPlayYouTubeRequest $request, Party $party) |
| 98 | + { |
| 99 | + $videoId = null; |
| 100 | + $url = parse_url($request->input('video')); |
| 101 | + if ($url['host'] === 'youtu.be') { |
| 102 | + // https://youtu.be/Lp__P8VBR5o?si=teYIzjNQoHuD7SEU |
| 103 | + $videoId = substr($url['path'] ?? '', 1); |
| 104 | + } else { |
| 105 | + $query = []; |
| 106 | + parse_str($url['query'] ?? '', $query); |
| 107 | + $videoId = $query['v'] ?? null; |
| 108 | + } |
| 109 | + if ($videoId === null || !$videoId) { |
| 110 | + return response()->redirectToRoute('parties.youtube', ['party' => $party->code]) |
| 111 | + ->with('failureMessage', 'Unable to identify video'); |
| 112 | + } |
| 113 | + PartyPlayYouTubeVideo::dispatch($party, $videoId)->afterResponse(); |
| 114 | + return response()->redirectToRoute('parties.youtube', ['party' => $party->code]) |
| 115 | + ->with('successMessage', 'Video requested'); |
| 116 | + } |
| 117 | + |
| 118 | + public function ytplayer(Party $party) |
| 119 | + { |
| 120 | + return view('parties.ytplayer', [ |
| 121 | + 'party' => $party, |
| 122 | + ]); |
| 123 | + } |
| 124 | + |
87 | 125 | public function search(SearchRequest $request, Party $party) |
88 | 126 | { |
89 | 127 | $member = $party->getMember($request->user()); |
|
0 commit comments