From 8f2560a70e44151be0717a142dbd273b73a658dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Wed, 30 Dec 2020 14:15:53 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=A4=E3=81=B9=E3=81=A7?= =?UTF-8?q?=E3=81=82=E3=82=8B=EF=BC=92=EF=BC=90=E4=BB=A5=E4=B8=8A=E4=BB=B6?= =?UTF-8?q?=E3=81=AE=E3=82=B3=E3=83=A1=E3=82=82=E8=A6=8B=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Video/Prayer.php | 28 +++++++++++++++++++++++---- resources/js/components/comments.vue | 11 +++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Video/Prayer.php b/app/Http/Controllers/Video/Prayer.php index 508461b..72cda5d 100644 --- a/app/Http/Controllers/Video/Prayer.php +++ b/app/Http/Controllers/Video/Prayer.php @@ -36,6 +36,11 @@ class Prayer { $comments = DB::table('blg_comments')->where('video_id', $vid)->orderBy('id', 'asc')->get()->toArray(); $ytslug = explode('?v=', $res->youtube); $res->ytcomment = (isset($ytslug[1]) ? $this->getYouTubeCome($ytslug[1]) : array()); + if ($res->ytcomment['nextPage'] != '') { + while ($res->ytcomment['nextPage'] != '') { + $res->ytcomment = $this->checkYouTubeCome($res->ytcomment, $ytslug[1], $res->ytcomment['nextPage']); + } + } $res->nicocomment = array(); $res->bccomment = array(); $res->lbcomment = array(); @@ -61,14 +66,24 @@ class Prayer { } $res->user = userDetail(null, $this->cook); - $res->comments = $comments; + $res->comments['total'] = count($comments); + $res->comments['come'] = $comments; return view('pages.site.video.prayer', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]); } - function getYouTubeCome ($slug) { + function checkYouTubeCome ($res, $slug, $next='') { + $come = $this->getYouTubeCome($slug, $next); + foreach ($come['come'] as $com) { $res['come'][] = $com; } + $res['total'] += $come['total']; + $res['nextPage'] = $come['nextPage']; + + return $res; + } + + function getYouTubeCome ($slug, $page='') { $ch = curl_init(); - $url = 'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet%2Creplies&moderationStatus=published&videoId='.$slug.'&key='.env('YOUTUBE_API'); + $url = 'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet%2Creplies&moderationStatus=published&videoId='.$slug.'&key='.env('YOUTUBE_API').'&pageToken='.$page;//.'&order=date&pageToken='.$page; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); @@ -80,6 +95,7 @@ class Prayer { $come = array(); $get = json_decode($get, false); if (isset($get->error)) return array(); + $come['come'] = array(); foreach ($get->items as $g) { $g->comment = new \stdClass(); @@ -103,9 +119,13 @@ class Prayer { } } - $come[] = $g->comment; + $come['come'][] = $g->comment; } + $come['total'] = $get->pageInfo->totalResults; + $come['prevPage'] = (isset($get->prevPageToken) ? $get->prevPageToken : ''); + $come['nextPage'] = (isset($get->nextPageToken) ? $get->nextPageToken : ''); + return $come; } } diff --git a/resources/js/components/comments.vue b/resources/js/components/comments.vue index 31e1e24..4b04d05 100644 --- a/resources/js/components/comments.vue +++ b/resources/js/components/comments.vue @@ -1,17 +1,17 @@