Example #1
0
 public static function getCachedMostPopularItems()
 {
     return Cache::remember('mostPopularMediaItems', Config::get("custom.cache_time"), function () {
         $numPopularItems = intval(Config::get("custom.num_popular_items"));
         // get ids for media items with ones with most views at the top
         $popularMediaItemIds = PlaybackHistory::groupBy("media_item_id")->selectRaw("SUM(constitutes_view) as view_count, media_item_id")->orderBy("view_count", "desc")->orderBy("id", "asc")->lists("media_item_id");
         if (count($popularMediaItemIds) === 0) {
             return array();
         }
         $tmp = "";
         foreach ($popularMediaItemIds as $i => $a) {
             if ($i > 0) {
                 $tmp .= ",";
             }
             $tmp .= "'" . $a . "'";
         }
         $mediaItems = self::accessible()->whereIn("id", $popularMediaItemIds)->orderBy(DB::raw("FIELD(id," . $tmp . ")"), "asc")->orderBy("scheduled_publish_time", "desc")->orderBy("name", "asc")->take($numPopularItems)->get();
         $items = array();
         $coverArtResolutions = Config::get("imageResolutions.coverArt");
         foreach ($mediaItems as $a) {
             $playlist = $a->getDefaultPlaylist();
             $generatedName = $playlist->generateEpisodeTitle($a);
             $uri = $playlist->getMediaItemUri($a);
             $playlistName = $playlist->generateName();
             $items[] = array("playlist" => $playlist, "mediaItem" => $a, "generatedName" => $generatedName, "playlistName" => $playlistName, "duration" => PlaylistTableHelpers::getDuration($a), "uri" => $uri, "coverArtUri" => $playlist->getMediaItemCoverArtUri($a, $coverArtResolutions['thumbnail']['w'], $coverArtResolutions['thumbnail']['h']));
         }
         return $items;
     });
 }
 public function getViewCount()
 {
     return PlaybackHistory::getStreamViewCount(intval($this->media_item_id));
 }