From d4820024bd57434719cb388d540c050e2bb9f86c 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, 23 Sep 2020 17:19:30 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=A6=E3=83=BC=E3=83=81=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=83=96=E7=AD=89=E3=81=AE=E3=82=B3=E3=83=A1=E3=82=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/VideoController.php | 34 ++++++++ resources/js/components/comments.vue | 82 +++++++++++-------- resources/sass/_navbar.scss | 14 ++++ resources/views/layouts/site.blade.php | 8 ++ .../views/pages/site/video/prayer.blade.php | 42 +++++++++- 5 files changed, 143 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/VideoController.php b/app/Http/Controllers/VideoController.php index a5c5c51..1d7adc1 100644 --- a/app/Http/Controllers/VideoController.php +++ b/app/Http/Controllers/VideoController.php @@ -69,6 +69,10 @@ class VideoController extends Controller { if ($res->gametitle == '') $res->gametitle = '初代'; $comments = DB::table('blg_comments')->where('video_id', $res->slug)->orderBy('id', 'asc')->get()->toArray(); + $ytslug = explode('?v=', $res->youtube); + $res->ytcomment = $this->getYouTubeCome($ytslug[1]); + $res->nicocomment = array(); + $res->bccomment = array(); foreach ($comments as $k => $c) { if ($c->isShadow == 0) { @@ -86,4 +90,34 @@ class VideoController extends Controller { return view('pages.site.video.prayer', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]); } + + function getYouTubeCome ($slug) { + $ch = curl_init(); + $url = 'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet%2Creplies&moderationStatus=published&videoId='.$slug.'&key='.env('YOUTUBE_API'); + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + + $get = curl_exec($ch); + curl_close($ch); + + $come = array(); + $get = json_decode($get, false); + if (isset($get->error)) return array(); + + foreach ($get->items as $g) { + $g->comment = new \stdClass(); + $g->comment->id = $g->id; + $g->comment->name = $g->snippet->topLevelComment->snippet->authorDisplayName; + $g->comment->channel = $g->snippet->topLevelComment->snippet->authorChannelUrl; + $g->comment->icon = $g->snippet->topLevelComment->snippet->authorProfileImageUrl; + $g->comment->created = date('Y年m月d日 H:i:s', strtotime($g->snippet->topLevelComment->snippet->publishedAt)); + $g->comment->message = $g->snippet->topLevelComment->snippet->textDisplay; + + $come[] = $g->comment; + } + + return $come; + } } diff --git a/resources/js/components/comments.vue b/resources/js/components/comments.vue index 8046f08..c9758e5 100644 --- a/resources/js/components/comments.vue +++ b/resources/js/components/comments.vue @@ -8,7 +8,13 @@
{{ i+1 }}
- {{ (c.name || '名無しのテクニシャン') }} より: + + + + {{ (c.name || '名無しのテクニシャン') }} + + {{ (c.name || '名無しのテクニシャン') }} + より:

{{ c.message }}

@@ -17,31 +23,33 @@ -
-
{{ err }}
-
-
名前
-
- + +
+
{{ err }}
+
+
名前
+
+ +
-
-
-
メールアドレス
-
- +
+
メールアドレス
+
+ +
-
-
-
本文
-
- +
+
本文
+
+ +
-
-
-
- +
+
+ +
-
+
@@ -63,21 +71,23 @@ this.newComment.text = ''; }, send () { - this.err = ''; - this.sending = true; + if (this.isvideo !== 'n') { + this.err = ''; + this.sending = true; - axios.post('/api/comment/new', { - comment: this.newComment, - isvideo: this.isvideo, - slug: this.slug - }).then(res => { - this.sending = false; - if (res.data.status === '010100') { this.comment.push(res.data.result); this.reset(); } - else this.err = 'エラーコード【' + res.data.status + '】' + res.data.message; - }).catch(err => { - this.sending = false; - this.err = 'サーバーエラーコード【' + err.response.status + '】' + err.response.data.message; - }); + axios.post('/api/comment/new', { + comment: this.newComment, + isvideo: this.isvideo, + slug: this.slug + }).then(res => { + this.sending = false; + if (res.data.status === '010100') { this.comment.push(res.data.result); this.reset(); } + else this.err = 'エラーコード【' + res.data.status + '】' + res.data.message; + }).catch(err => { + this.sending = false; + this.err = 'サーバーエラーコード【' + err.response.status + '】' + err.response.data.message; + }); + } } } } diff --git a/resources/sass/_navbar.scss b/resources/sass/_navbar.scss index d607e51..1a9dcb2 100644 --- a/resources/sass/_navbar.scss +++ b/resources/sass/_navbar.scss @@ -41,3 +41,17 @@ .navbar-brand:hover, .nav-item:hover { background-color: $suwa07; } + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: $suwa08; +} + +.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { + color: $white1; + background-color: $suwa04; + border-color: $suwa08; +} + +.nav-tabs { + border-bottom: 1px solid $suwa03; +} diff --git a/resources/views/layouts/site.blade.php b/resources/views/layouts/site.blade.php index a9ca204..897a8cd 100644 --- a/resources/views/layouts/site.blade.php +++ b/resources/views/layouts/site.blade.php @@ -133,5 +133,13 @@ + @if (strpos($_SERVER['REQUEST_URI'], '/video/play') !== false || $_SERVER['REQUEST_URI'] == '/video/play') + + @endif diff --git a/resources/views/pages/site/video/prayer.blade.php b/resources/views/pages/site/video/prayer.blade.php index 92eeff3..396876f 100644 --- a/resources/views/pages/site/video/prayer.blade.php +++ b/resources/views/pages/site/video/prayer.blade.php @@ -10,7 +10,47 @@
- + + +
+
+ +
+ @if ($res->ytcomment) +
+ +
+ @endif + @if ($res->nicocomment) +
+ +
+ @endif + @if ($res->bccomment) +
+ +
+ @endif +