public function getIndex($pageNo = 0) { $pageNo = intval($pageNo); $itemsPerPage = intval(Config::get("custom.num_playlists_per_page")); $itemOffset = $pageNo * $itemsPerPage; $numPlaylists = Playlist::accessibleToPublic()->belongsToShow(false)->count(); $numPages = ceil($numPlaylists / $itemsPerPage); $playlists = Playlist::accessibleToPublic()->belongsToShow(false)->orderBy("name", "asc")->orderBy("description", "asc")->skip($itemOffset)->take($itemsPerPage)->get(); if ($pageNo > 0 && $playlists->count() === 0) { App::abort(404); } $coverArtResolutions = Config::get("imageResolutions.coverArt"); $playlistTableData = array(); foreach ($playlists as $i => $item) { $thumbnailUri = Config::get("custom.default_cover_uri"); if (!Config::get("degradedService.enabled")) { $thumbnailUri = $item->getCoverArtUri($coverArtResolutions['thumbnail']['w'], $coverArtResolutions['thumbnail']['h']); } $playlistTableData[] = array("uri" => $item->getUri(), "title" => $item->generateName(), "escapedDescription" => !is_null($item->description) ? e($item->description) : null, "playlistName" => null, "episodeNo" => null, "thumbnailUri" => $thumbnailUri, "thumbnailFooter" => null, "duration" => null, "active" => false); } $playlistFragment = count($playlistTableData) > 0 ? View::make("fragments.home.playlist", array("stripedTable" => true, "headerRowData" => null, "tableData" => $playlistTableData)) : null; $pageNumbers = array(); for ($i = 0; $i < $numPages; $i++) { $pageNumbers[] = array("num" => $i + 1, "uri" => URL::route("playlists", array($i)), "active" => $i === $pageNo); } $openGraphProperties = array(); $openGraphProperties[] = array("name" => "video:release_date", "content" => null); foreach ($playlistTableData as $a) { $openGraphProperties[] = array("name" => "og:see_also", "content" => $a['uri']); } $view = View::make("home.playlists.index"); $view->playlistFragment = $playlistFragment; $view->pageSelectorFragment = View::make("fragments.home.pageSelector", array("nextUri" => $pageNo < $numPages - 1 ? URL::route("playlists", array($pageNo + 1)) : null, "prevUri" => $pageNo > 0 ? URL::route("playlists", array($pageNo - 1)) : null, "numbers" => $pageNumbers)); $this->setContent($view, "playlists", "playlists", $openGraphProperties, "Playlists"); }
public function generatePlaylistsResponseData() { $data = $this->playlistTransformer->transformCollection(Playlist::accessibleToPublic()->orderBy("id")->get()->all()); return new ApiResponseData($data); }
public function postPlaylistInfo($id) { $playlist = Playlist::accessibleToPublic()->find(intval($id)); if (is_null($playlist)) { App::abort(404); } $data = array(); $mediaItems = $playlist->mediaItems()->accessible()->orderBy("media_item_to_playlist.position")->get(); $mediaItems->load("videoItem", "liveStreamItem", "liveStreamItem.stateDefinition"); foreach ($mediaItems as $a) { $vod = null; $stream = null; if (!is_null($a->videoItem)) { $available = false; if (!Config::get("degradedService.enabled")) { $available = $a->videoItem->getIsLive(); } $vod = array("available" => $available); } if (!is_null($a->liveStreamItem)) { $stream = array("state" => intval($a->liveStreamItem->getResolvedStateDefinition()->id)); } $data[] = array("id" => intval($a->id), "vod" => $vod, "stream" => $stream, "url" => $playlist->getMediaItemUri($a)); } return Response::json($data); }
public function postRegisterLike($playlistId, $mediaItemId) { $playlist = Playlist::accessibleToPublic()->find($playlistId); if (is_null($playlist)) { App::abort(404); } $mediaItem = $playlist->mediaItems()->accessible()->find($mediaItemId); if (is_null($mediaItem)) { App::abort(404); } $success = false; if (isset($_POST['type'])) { $type = $_POST['type']; if ($type === "like" || $type === "dislike" || $type === "reset") { // an item can only be liked when it has an accessible video, or live stream which is enabled and not in the 'not live' state $mediaItemVideo = $mediaItem->videoItem; $mediaItemLiveStream = $mediaItem->liveStreamItem; $mediaItemVideoAccessible = false; if (!Config::get("degradedService.enabled")) { $mediaItemVideoAccessible = !is_null($mediaItemVideo) && $mediaItemVideo->getIsLive(); } $mediaItemLiveStreamValidState = !is_null($mediaItemLiveStream) && $mediaItemLiveStream->getIsAccessible() && intval($mediaItemLiveStream->getResolvedStateDefinition()->id) !== 1; if ($mediaItemVideoAccessible || $mediaItemLiveStreamValidState) { $user = Facebook::getUser(); if (!is_null($user)) { if ($type === "like") { $mediaItem->registerLike($user); } else { if ($type === "dislike") { $mediaItem->registerDislike($user); } else { if ($type === "reset") { $mediaItem->removeLike($user); } } } $success = true; } } } } return Response::json(array("success" => $success)); }