public function confirm() { if ($this->isPOST()) { return $this->setAction('subscribe'); } $feeds = array(); $url = $this->params('feedlink'); $feedlinks = FeedUtils::getFeedlinks($url); foreach ($feedlinks as $feedlink) { $feed = $this->Feed->findByFeedlink($feedlink); if ($feed) { $sub = $this->member->subscribed($feed['Feed']['id']); if ($sub) { $feed['subscribe_id'] = $sub['Subscription']['id']; } $feeds[] = $feed; continue; } $feeddata = FeedUtils::getFeed($feedlink); if (!$feeddata) { continue; } $feeds[] = array('Feed' => array('id' => 0, 'subscribers_count' => 0, 'feedlink' => $feedlink, 'link' => $feeddata->get_permalink(), 'title' => $feeddata->get_title())); } if (empty($feeds)) { $this->Flash->notice('please check URL'); $this->redirect('/subscribe/index'); } $this->set('feeds', $feeds); $this->set('feedlink', $feedlink); }
public function discover() { $url = $this->params('url'); $feeds = array(); $feedlinks = FeedUtils::getFeedlinks($url); if (!$feedlinks) { $this->renderJSON(json_encode($feeds)); return; } foreach ($feedlinks as $feedlink) { $feed = $this->Feed->findByFeedlink($feedlink); if ($feed) { $result = array('subscribers_count' => $feed['Feed']['subscribers_count'], 'feedlink' => $feed['Feed']['feedlink'], 'link' => $feed['Feed']['link'], 'title' => $feed['Feed']['title']); $conditions = array(); $conditions[] = es('Subscription.member_id = %s', $this->member->id); $conditions[] = es('Subscription.feed_id = %s', $feed['Feed']['id']); $sub = $this->Subscription->find($conditions); if ($sub) { $result['subscribe_id'] = $sub['Subscription']['id']; } $feeds[] = $result; } else { $feeddata = FeedUtils::getFeed($feedlink); if (!$feeddata) { continue; } $feeds[] = array('subscribers_count' => 0, 'feedlink' => $feedlink, 'link' => $feeddata->get_permalink(), 'title' => $feeddata->get_title()); } } $this->renderJSON(json_encode($feeds)); }