/** * @Route("/import-playlist", name="_importPlaylist") * @Template() */ public function importAction() { $this->initialize(); $request = $this->getRequest(); $data = array(); if ($request->getSession()->get('token')) { if ($request->isXmlHttpRequest()) { $playlistIds = $request->request->get('playlistIds'); $em = $this->getDoctrine()->getManager(); $playlistQuery = new PlaylistQuery($em); $playlistItemQuery = new PlaylistItemQuery($em); foreach ($playlistIds as $id) { $playlist = new Playlist(); $playlist->setName($this->get('youtubePlaylist')->setId($id)->getSingleResult()->snippet->title)->setPrivate(false)->setUser($this->getUser())->setCreationDate(new \DateTime()); $playlistQuery->persist($playlist); $results = $this->get('youtubePlaylistItems')->setIdPlaylist($id)->getResults(); foreach ($results->items as $item) { $playlistItem = new Playlistitem(); $playlistItem->setPlaylist($playlist)->setIdVideo($item->snippet->resourceId->videoId)->getVideoInformation($this->get('youtubeVideo')); $playlistItemQuery->persist($playlistItem); } } $data['playlistImported'] = true; } else { $this->client->setAccessToken($request->getSession()->get('token')); $youtube = new apiYouTubeService($this->client); $playlists = $youtube->playlists->listPlaylists('snippet', array('mine' => 'true', 'maxResults' => 20)); $data['playlists'] = $playlists; } } else { $this->initialize(); $state = mt_rand(); $this->client->setState($state); $request->getSession()->set('stateYoutube', $state); $authUrl = $this->client->createAuthUrl(); $data['authUrl'] = $authUrl; } return $data; }
/** * @Route("/add-to-favorite/{idPlaylist}", requirements={"idPlaylist" = "\d+"}, name="_addFavoritePlaylist") * @Template() */ public function addtofavoriteAction($idPlaylist) { $data['title'] = 'Added to your favorite playlist'; $em = $this->getDoctrine()->getManager(); $playlistQuery = new PlaylistQuery($em); $playlist = $playlistQuery->setId($idPlaylist)->getSingle('playlist_' . $idPlaylist); if ($playlist->getUser()->getId() != $this->getUser()->getId()) { $this->getUser()->addFavoritePlaylist($playlist); $em->flush(); $result = true; } else { $result = false; } $data['content'] = $this->renderView('VidlisCoreBundle:PlaylistActions:addfavorite.html.twig', array('result' => $result)); $response = new Response(json_encode($data)); $response->headers->set('Content-Type', 'application/json'); return $response; }
/** * @Template() */ public function contentCommentAction($idPlaylist) { $data = []; $em = $this->getDoctrine()->getManager(); $playlistQuery = new PlaylistQuery($em); $playlist = $playlistQuery->setId($idPlaylist)->getSingle('playlist_' . $idPlaylist); $data['playlist'] = $playlist; $data['tab'] = 'playlist'; if ($this->getUser()) { $data['connected'] = true; $data['user'] = $this->getUser(); } else { $data['connected'] = false; } return $data; }