summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Http/Controllers/AnimeController.php36
-rw-r--r--resources/views/anime.blade.php60
-rw-r--r--resources/views/layouts/app.blade.php1
-rw-r--r--routes/web.php1
4 files changed, 98 insertions, 0 deletions
diff --git a/app/Http/Controllers/AnimeController.php b/app/Http/Controllers/AnimeController.php
new file mode 100644
index 0000000..d43b1f8
--- /dev/null
+++ b/app/Http/Controllers/AnimeController.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Http\Controllers;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Http\Request;
+use Illuminate\Http\Response;
+
+use App\Anime;
+use App\AnimeStats;
+
+use Carbon\Carbon;
+
+class AnimeController extends Controller {
+ /**
+ * Shows the index page.
+ *
+ * @return Response
+ */
+ public function showAnime($mal_id) {
+
+ $anime = Anime::where('mal_id', $mal_id)->get()->first();
+ $anime["stats"] = $anime->getStats()->orderBy('created_at', 'asc')->get();
+
+ foreach( $anime["stats"] as $stats ) {
+ $score[] = $stats->score;
+ $scored_at[] = $stats->created_at->toDateString();
+ }
+ $anime["score"] = $score;
+ $anime["score_label"] = $scored_at;
+
+ $anime["basic_data"] = DB::select('select score, rank, popularity, members, favorites from anime join stats on stats.id = ( select id from stats where anime.mal_id = stats.mal_id order by created_at desc limit 1) where anime.mal_id = ?', [$mal_id])[0];
+
+ return view('anime', [ "anime" => $anime ]);
+ }
+}
diff --git a/resources/views/anime.blade.php b/resources/views/anime.blade.php
new file mode 100644
index 0000000..0e5596b
--- /dev/null
+++ b/resources/views/anime.blade.php
@@ -0,0 +1,60 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container" id="index">
+ <h1>{{ $anime->title_pref }}</h1>
+
+ <div class="row">
+ <div class="col-sm">
+ <img src="{{ $anime->image_url }}" class="img-fluid">
+ </div>
+ <div class="col-sm">
+ {!! str_replace("%%br%%", "<br>", e($anime->synopsis)) !!}
+ <br>
+ <br>
+ <strong>Score: </strong> {{ $anime["basic_data"]->score }}
+ <br>
+ <strong>Rank: </strong> {{ $anime["basic_data"]->rank }}
+ <br>
+ <strong>Popularity: </strong> {{ $anime["basic_data"]->popularity }}
+ <br>
+ <strong>Members: </strong> {{ $anime["basic_data"]->members }}
+ </div>
+ </div>
+
+ <p>
+ <h2>Score History</h2>
+ <canvas id="score_chart" height=""></canvas>
+ <!--
+ {{ $anime }}
+ -->
+ </p>
+</div>
+<script>
+var ctx = document.getElementById('score_chart');
+var myChart = new Chart(ctx, {
+ type: 'line',
+ data: {
+ labels: {!! json_encode($anime["score_label"]) !!},
+ datasets: [{
+ label: 'Average Score on MAL',
+ data: {{ json_encode($anime["score"]) }},
+ file: 'false',
+ borderColor: 'rgb(75, 192, 192)',
+ lineTension: 0.01,
+ backgroundColor: 'white',
+ }]
+ },
+ options: {
+ scales: {
+ yAxes: [{
+ ticks: {
+ beginAtZero: false
+ }
+ }]
+ }
+ }
+});
+
+</script>
+@endsection
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 8d29582..4090062 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -12,6 +12,7 @@
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.min.js"></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
diff --git a/routes/web.php b/routes/web.php
index cd25f4f..79ec91b 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -19,3 +19,4 @@ Route::get('/save', 'IndexController@saveWatchingAnime');
Route::get('/test/getcal/{username}', 'TestController@getCalendar');
Route::get('/test/setcal/{username}', 'TestController@setCalendar');
Route::get('/api/anime/{mal_id}', 'ApiController@getAnime');
+Route::get('/anime/{mal_id}', 'AnimeController@showAnime');