예제 #1
0
 protected function _subscribe($topic)
 {
     try {
         $feed = Zend_Feed_Reader::import($topic);
     } catch (Zend_Exception $e) {
         return false;
     }
     /**
      * Must use the URI of the feed contained in the feed itself in
      * case the original is no longer valid (e.g. feed moved and we just
      * followed a redirect to the new URI)
      */
     $feedTopicUri = $feed->getFeedLink();
     if (empty($feedTopicUri)) {
         $feedTopicUri = $topic;
     }
     /**
      * The feed may advertise one or more Hub Endpoints we can use.
      * We may subscribe to the Topic using one or more of the Hub
      * Endpoints advertised (good idea in case a Hub goes down).
      */
     $feedHubs = $feed->getHubs();
     if (is_null($feedHubs) || empty($feedHubs)) {
         return false;
     }
     /**
      * Carry out subscription operation...
      */
     $storage = new Zend_Feed_Pubsubhubbub_Storage_Filesystem();
     $storage->setDirectory(APPLICATION_ROOT . '/store/subscriptions');
     $options = array('topicUrl' => $feedTopicUri, 'hubUrls' => $feedHubs, 'storage' => $storage, 'callbackUrl' => 'http://hub.survivethedeepend.com/callback', 'usePathParameter' => true, 'authentications' => array('http://superfeedr.com/hubbub' => array('padraicb', 'password')));
     $subscriber = new Zend_Feed_Pubsubhubbub_Subscriber($options);
     $subscriber->subscribeAll();
     /**
      * Do some checking for errors...
      */
     if (!$subscriber->isSuccess()) {
         var_dump($subscriber->getErrors());
         exit;
     }
     return true;
 }
예제 #2
0
require_once 'Zend/Feed/Reader.php';
//$topic = 'http://chregu.tv/blog/atom.xml';
$topic = 'http://www.planet-php.net/atom/';
$feed = Zend_Feed_Reader::import($topic);
$feedTopicUri = $feed->getFeedLink();
/**
* The feed may advertise one or more Hub Endpoints we can use.
* We may subscribe to the Topic using one or more of the Hub
* Endpoints advertised (good idea in case a Hub goes down).
*/
$feedHubs = $feed->getHubs();
/**
* Carry out subscription operation...
*/
require_once "Zend/Feed/Pubsubhubbub/Storage/Filesystem.php";
$storage = new Zend_Feed_Pubsubhubbub_Storage_Filesystem();
$storage->setDirectory(R2T_PROJECT_DIR . "/tmp");
$options = array('topicUrl' => $feedTopicUri, 'hubUrls' => $feedHubs, 'storage' => $storage, 'callbackUrl' => 'http://' . $_SERVER['HTTP_HOST'] . '/rss2twi/callback.php', 'usePathParameter' => true, 'authentications' => array());
require_once "Zend/Feed/Pubsubhubbub/Subscriber.php";
$subscriber = new Zend_Feed_Pubsubhubbub_Subscriber($options);
$subscriber->subscribeAll();
/**
* Do some checking for errors...
*/
if (!$subscriber->isSuccess()) {
    var_dump($subscriber->getErrors());
    exit;
    print "<br/>ERROR";
} else {
    error_log("SEEMS TO BE OK");
}
예제 #3
0
 protected function _checkPubsubDisabled(array $feeds)
 {
     $feedUris = array();
     foreach ($feeds as $feed) {
         $feedUris[] = $feed->uri;
     }
     $subs = Doctrine_Query::create()->from('Zfplanet_Model_Subscription')->whereIn('topic_url', $feedUris)->execute();
     $sub = new Zend_Feed_Pubsubhubbub_Subscriber();
     $sub->setStorage(Doctrine_Core::getTable('Zfplanet_Model_Subscription'));
     $sub->usePathParameter();
     $sub->setCallbackUrl($this->_getCallbackUri());
     foreach ($subs as $subscription) {
         foreach ($sub->getHubUrls() as $url) {
             $sub->removeHubUrl($url);
         }
         //reset
         $sub->addHubUrl($sub->hub_url);
         $sub->setTopicUrl($sub->topic_url);
         $sub->unsubscribeAll();
     }
 }