From a5ff13269db053896b604fc29181d60e208d0463 Mon Sep 17 00:00:00 2001 From: horus Date: Wed, 16 Sep 2020 11:13:53 +0200 Subject: Major improvement. --- app/Http/Controllers/AnimeController.php | 69 ++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 13 deletions(-) (limited to 'app/Http/Controllers/AnimeController.php') diff --git a/app/Http/Controllers/AnimeController.php b/app/Http/Controllers/AnimeController.php index 1dd7c35..1a0809f 100644 --- a/app/Http/Controllers/AnimeController.php +++ b/app/Http/Controllers/AnimeController.php @@ -35,9 +35,12 @@ class AnimeController extends Controller { $anime["stats"] = $anime->getStats()->orderBy('created_at', 'asc')->get(); foreach( $anime["stats"] as $stats ) { - $score[] = $stats->score; + if ( ! is_null($stats->score) ) { + $score[] = $stats->score; + $rank[] = $stats->rank; + $created_at_score[] = $stats->created_at->toDateString(); + } $created_at[] = $stats->created_at->toDateString(); - $rank[] = $stats->rank; $popularity[] = $stats->popularity; $members[] = $stats->members; $favorites[] = $stats->favorites; @@ -85,43 +88,83 @@ class AnimeController extends Controller { $anime["score_10"] = $score_10; $anime["chart_label"] = $created_at; + $anime["chart_label_score"] = $created_at_score; $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 ]); } - public function showAllAnime() { + public function showCurrentAnime() { $anime = new Anime; - $most_surprising_anime = $anime->setTable('view_anime_index'); - $most_surprising_anime = $most_surprising_anime->simplePaginate(10); + $anime = $anime->setTable('view_anime_index'); + $most_surprising_anime = $anime->simplePaginate(10); #$anime = $anime->setTable('anime'); $anime = $anime->where('airing_status', env('ANIME_IS_AIRING')); $anime = $anime->orderBy('season_year', 'desc'); $anime = $anime->orderByRaw('FIELD(season_name, "Summer", "Fall", "Winter", "Spring")'); - $anime = $anime->orderBy('watching', 'desc'); - $anime = $anime->orderBy('members', 'desc'); $anime = $anime->orderBy('score_today', 'desc'); - $anime = $anime->simplePaginate(10); + $anime = $anime->orderBy('members', 'desc'); + $anime = $anime->orderBy('watching', 'desc'); + $anime = $anime->get(); + #$anime = $anime->simplePaginate(10); - return view('index_anime', ["all_anime" => $anime, "most_suprising_anime" => $most_surprising_anime]); + return view('list_anime', ["all_anime" => $anime, "most_suprising_anime" => $most_surprising_anime, "title" => "Currently Airing"]); } public function showSurprisingAnime() { $anime = new Anime; $most_surprising_anime = $anime->setTable('view_anime_index'); - $most_surprising_anime = $most_surprising_anime->simplePaginate(10); + $most_surprising_anime = $most_surprising_anime->paginate(12); + #$most_surprising_anime = $most_surprising_anime->simplePaginate(10); + #$most_surprising_anime = $most_surprising_anime->get(); - return view('surprising_anime', ["surprising_anime" => $most_surprising_anime]); + #return view('surprising_anime', ["surprising_anime" => $most_surprising_anime, "title" => "Most Surprising"]); + return view('list_anime', ["all_anime" => $most_surprising_anime, "title" => "Most Surprising Anime"]); } public function showTopAnime() { $anime = new Anime; $anime = $anime->setTable('view_anime_index'); $anime = $anime->orderBy('score_today', 'desc'); - $top_anime = $anime->simplePaginate(10); + #$top_anime = $anime->simplePaginate(10); + #$top_anime = $anime->get(); + $top_anime = $anime->paginate(12); + + #return view('top_anime', ["top_anime" => $top_anime, "title" => "Top"]); + return view('list_anime', ["all_anime" => $top_anime, "title" => "Top Anime of all Time"]); + } + + public function search(Request $request) { + $search_unsafe = explode(",", $request->input("q")); + + $anime = new Anime; + $anime = $anime->setTable('view_anime_index'); + + foreach($search_unsafe as $q) { + $q_raw = escapeLike($q); + $q = "%".$q_raw."%"; + /* + $anime = $anime->where('title_eng', 'like', $q) + ->orWhere('title_rom', 'like', $q) + ->orWhere('title_nat', 'like', $q) + ->orWhere('title_pref', 'like', $q) + ->orWhere('synopsis', 'like', $q); + */ + $anime = $anime->where('title_eng', 'like', $q) + ->orWhere('mal_id', '=', $q_raw) + ->orWhere('title_pref', 'like', $q) + ->orWhere('synopsis', 'like', $q); + } + $count = $anime->count(); + $anime = $anime->orderBy('season_year', 'desc'); + $anime = $anime->orderByRaw('FIELD(season_name, "Summer", "Fall", "Winter", "Spring")'); + $anime = $anime->orderBy('score_today', 'desc'); + $anime = $anime->orderBy('members', 'desc'); + $anime = $anime->orderBy('watching', 'desc'); + $sanime = $anime->paginate(12); - return view('top_anime', ["top_anime" => $top_anime]); + return view('list_anime', ["all_anime" => $sanime, "title" => "Search", "count" => $count]); } } -- cgit v1.2.3