first()->value; if($nextfilmid != 0 && !is_null($nextfilmid)) { $feature = Film::where('id', $nextfilmid)->first(); $featuretype = 'next'; } else { //lastfilm $feature = Film::orderBy('seen', 'desc')->first(); $featuretype = 'last'; } $client = TmdbProvider::getClient(); $repo = new MovieRepository($client); /** @var \Tmdb\Model\Movie */ $tmdb = $repo->load($feature->tvdbid); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); if($feature->poster === '') { $feature->poster = $tmdb->getPosterPath(); $feature->save(); } $popular = Film::popular()->limit(5)->get(); $new = Film::whereNull('seen')->whereNull('rejected')->orderBy('suggested', 'DESC')->limit(5)->get(); $seen = $filme = Film::whereNotNull('seen')->orderBy('seen', 'desc')->limit(5, $featuretype == 'next' ? 0 : 1)->get(); $news = News::orderBy('id', 'desc')->limit(5)->get(); return view('main', ['feature' => $feature, 'ftype' => $featuretype, 'ftmdb' => $tmdb, 'image' => $ihelp, 'popular' => $popular, 'new' => $new, 'seen' => $seen, 'news' => $news]); })->name('home'); Route::get('/film/{id}', function ($id) { $film = Film::where('id', $id)->first(); $client = TmdbProvider::getClient(); $repo = new MovieRepository($client); /** @var \Tmdb\Model\Movie */ $tmdb = $repo->load($film->tvdbid); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); if($film->poster === '') { $film->poster = $tmdb->getPosterPath(); $film->save(); } return view('film', ["film" => $film, "tmdb" => $tmdb, "image" => $ihelp]); })->name('film'); Route::get('/dashboard', function () { return view('dashboard'); })->middleware(['auth'])->name('dashboard'); Route::get('/gesehen/{field?}/{order?}', function ($field = "seen", $order = "desc") { $filme = Film::whereNotNull('seen')->orderBy($field, $order)->paginate(24); $client = TmdbProvider::getClient(); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('archiv', ['title' => 'Gesehene Filme', 'films' => $filme, 'ihelp' => $ihelp]); })->name('gesehen')->where(['field' => '[a-z]+', 'order' => 'asc|desc']); Route::get('/abgelehnt/{field?}/{order?}', function ($field = "seen", $order = "desc") { $filme = Film::whereNotNull('rejected')->orderBy($field, $order)->paginate(24); $client = TmdbProvider::getClient(); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('archiv', ['title' => 'Abgelehnte Filme', 'films' => $filme, 'ihelp' => $ihelp]); })->name('abgelehnt')->where(['field' => '[a-z]+', 'order' => 'asc|desc']); Route::get('/vorschlaege/{order?}', function ($order = 'popular') { if($order === "neu") $films = Film::whereNull('seen')->whereNull('rejected')->orderBy('suggested', 'DESC')->paginate(24); elseif($order === "popular") $films = Film::popular()->paginate(24); else abort(404); $client = TmdbProvider::getClient(); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('vorschlaege', ["films" => $films, "title" => $order == 'popular' ? "nach Beliebtheit" : "nach Datum", "ihelp" => $ihelp]); })->name('vorschlag'); Route::get('/neu', function () { return view('suche', ['title' => 'Film vorschlagen']); })->middleware(['auth'])->name('neu'); Route::get('/api/search/{term?}', function($term = null) { if ($term == null || strlen($term) < 4) { return response('
Bitte mindestens 4 Zeichen eingeben!
'); } else { $filme = Film::whereRaw("LOWER(name) like LOWER('%{$term}%')")->limit(12)->get(); $count = Film::whereRaw("LOWER(name) like LOWER('%{$term}%')")->count(); $client = TmdbProvider::getClient(); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('localsearch', ['filme' => $filme, 'count' => $count, 'ihelp' => $ihelp]); } }); Route::get('/api/remotesearch/{term?}', function($term = null) { $client = TmdbProvider::getClient(); $query = new MovieSearchQuery(); $query->page(1); $search = new SearchRepository($client); $find = $search->searchMovie($term, $query); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('remotesearch', ['filme' => $find, 'image' => $ihelp]); }); Route::get('/film/vote/{film}/{vote}', function($film, $vote) { $vbool = (bool) $vote; $vote = Vote::where('film', $film)->where('user', auth()->id())->first(); if(is_null($vote)) { $vote = new Vote(); $vote->user = auth()->id(); $vote->film = $film; } $vote->vote = $vbool; $vote->save(); return redirect("/film/{$film}#voting")->with('status', 'Du hast abgestimmt!'); })->middleware(['auth']); Route::get('/film/mark/{id}/{type}', function($id, $type) { if(!Auth::user()->isAdmin()) { return redirect("/film/{$id}"); } switch($type) { case 'next': $setting = Setting::nextFilm()->first(); $setting->value = $id; $setting->save(); $message = "Als nächsten Film markiert!"; break; case 'seen': if(Setting::nextFilm()->first()->value == $id) { $setting = Setting::nextFilm()->first(); $setting->value = 0; $setting->save(); } $film = Film::find($id); $film->seen = now(); $film->save(); $message = "Film als gesehen markiert!"; break; case 'deny': if(Setting::nextFilm()->first()->value == $id) { $setting = Setting::nextFilm()->first(); $setting->value = 0; $setting->save(); } $film = Film::find($id); $film->rejected = now(); $film->save(); $message = "Film als abgelehnt markiert!"; break; } return redirect("/film/{$id}")->with('status', $message); })->middleware(['auth']); Route::get('/vorschlag/{id}', function($id) { $films = Film::where('tvdbid', $id)->get(); $previous = ["seen" => [], "rejected" => [], "suggested" => []]; foreach($films as $film) { if(!is_null($film->rejected)) { $previous['rejected'][] = ["id" => $film->id, "date" => $film->rejected]; } elseif (!is_null($film->seen)) { $previous['seen'][] = ["id" => $film->id, "date" => $film->seen]; } else { $previous['suggested'][] = ["id" => $film->id, "date" => $film->created_at]; } } $client = TmdbProvider::getClient(); $repo = new MovieRepository($client); /** @var \Tmdb\Model\Movie */ $tmdb = $repo->load($id); $ihelp = new ImageHelper((new ConfigurationRepository($client))->load()); return view('vorschlag', ["tmdb" => $tmdb, "image" => $ihelp, "previous" => $previous]); })->middleware(['auth']); Route::get('/vorschlag/{id}/vorschlagen', function($id) { $client = TmdbProvider::getClient(); $repo = new MovieRepository($client); /** @var \Tmdb\Model\Movie */ $tmdb = $repo->load($id); $film = new Film(); $film->name = $tmdb->getTitle(); $film->tvdbid = $id; $film->suggested = now(); $film->user = auth()->user()->id; $film->poster = $tmdb->getPosterPath(); $film->save(); return redirect("/film/" . $film->id)->with('status', auth()->user()->name . ', Film "' . $film->name . '" vorgeschlagen.'); })->middleware(['auth']); Route::post('/comment/new/{film}', function($film, Request $request) { $c = new Comment(); $c->film = $film; $c->user = Auth::user()->id; $c->body = $request->input('body', ''); if(is_null($c->body)) $c->body = ""; $c->evaluation = $request->input('vote', 0); $c->save(); return redirect("/film/" . $film)->with('status', auth()->user()->name . ', Kommentar/Bewertung hinzugefügt.'); })->middleware(['auth']); Route::post('/comment/edit/{comment}', function($comment, Request $request) { $c = Comment::findOrFail($comment); $c->body = $request->input('body', ''); if(is_null($c->body)) $c->body = ""; $c->evaluation = $request->input('vote', $c->evaluation); $c->save(); return redirect("/film/" . $c->film)->with('status', auth()->user()->name . ', Kommentar/Bewertung hinzugefügt.'); })->middleware(['auth']); require __DIR__.'/auth.php';