. * * @category Plugin * @package StatusNet * @author Zach Copley * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ if (!defined('STATUSNET')) { exit(1); } class RSSCloudNotifier { function postUpdate($endpoint, $feed) { common_debug("CloudNotifier->notify: $feed"); $params = 'url=' . urlencode($feed); $result = $this->httpPost($endpoint, $params); // XXX: Make all this use CurlClient (lib/curlclient.php) if ($result) { common_debug('RSSCloud plugin - success notifying cloud endpoint!'); } else { common_debug('RSSClous plugin - failure notifying cloud endpoint!'); } return $result; } function userAgent() { return 'rssCloudPlugin/' . RSSCLOUDPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION; } private function httpPost($url, $params) { $options = array(CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, CURLOPT_USERAGENT => $this->userAgent(), CURLOPT_RETURNTRANSFER => true, CURLOPT_FAILONERROR => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if ($info['http_code'] == 200) { return true; } else { return false; } } }