예제 #1
0
 public function add($em, $src = null)
 {
     $rsp = array();
     // Return error if $src is empty
     if (!isset($src)) {
         return array('success' => false, 'errorCode' => 'emptyField');
     }
     $configService = $this->getConfigService();
     $dateAgo = $this->getUtilityService()->getDateAgo($configService::EPISODE_DAY_MAX);
     // Check to see if the value is url (XML feed) or Youtube channel ID
     // If the input is a URL for XML Feed
     if (filter_var($src, FILTER_VALIDATE_URL)) {
         // Get data with SimplePie first
         $simplepie = new SimplePieService($src);
         $subscription = $simplepie->getSubscriptionArray();
         $episodes = $simplepie->getEpisodeCollection($dateAgo);
         //Check for empty fields
         // If the subscription array has any empty values try the ZetaService
         // Then fold the missing values together
         //			if(in_array("", array_merge($subscription, $episodes))){
         //				$rsp = $this->checkForEmptyFields( new ZetaXMLService(), $subscription, $episodes, $dateAgo);
         //				$subscription = $rsp['subscription'];
         //				$episodes = $rsp['episodes'];
         //			}
         $subscription = $this->createSubscriptionEntity(new Subscription(), $subscription, $src, $episodes[0]['src']);
         $em->persist($subscription);
         $em->flush($subscription);
         $episodeService = new EpisodeService();
         $episodes = $episodeService->buildBulkEpisodes($em, $episodes, $subscription);
         $rsp = array('subscription' => $this->getSubscriptionArray($subscription), 'episodes' => $episodes);
     } else {
         // Youtube
     }
     return $rsp;
 }
예제 #2
0
 public function syncAction()
 {
     $request = Request::createFromGlobals();
     $syncedSubscriptions = urldecode($request->request->get('syncedSubscriptions'));
     $sr = $this->getDoctrine()->getRepository('HCMediaBundle:Subscription');
     $er = $this->getDoctrine()->getRepository('HCMediaBundle:Episode');
     $episodeService = new EpisodeService();
     $configService = $this->get('config_service');
     $dateAgo = $this->get('utility_service')->getDateAgo($configService::EPISODE_DAY_MAX);
     $episodeService->deleteOldEpisodes($er, $dateAgo);
     $rsp = $this->get('subscription_service')->sync($sr, $er, $syncedSubscriptions);
     return new Response(json_encode($rsp));
 }