示例#1
0
 /**
  * @param string $feeduri
  * @return FeedSub
  * @throws FeedSubException if feed is invalid or lacks PuSH setup
  */
 public static function ensureFeed($feeduri)
 {
     $current = self::staticGet('uri', $feeduri);
     if ($current) {
         return $current;
     }
     $discover = new FeedDiscovery();
     $discover->discoverFromFeedURL($feeduri);
     $huburi = $discover->getHubLink();
     if (!$huburi && !common_config('feedsub', 'fallback_hub')) {
         throw new FeedSubNoHubException();
     }
     $feedsub = new FeedSub();
     $feedsub->uri = $feeduri;
     $feedsub->huburi = $huburi;
     $feedsub->sub_state = 'inactive';
     $feedsub->created = common_sql_now();
     $feedsub->modified = common_sql_now();
     $result = $feedsub->insert();
     if (empty($result)) {
         throw new FeedDBException($feedsub);
     }
     return $feedsub;
 }