}
header('Content-Type: text/xml');
- echo '<notifyResult success=\'true\' msg=\'Thanks for the update.\' />' . "\n";
+ Echo "<notifyResult success='true' msg='Thanks for the update.' />\n";
}
$this->ip = $_SERVER['REMOTE_ADDR'];
- common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' . $this->ip . ' claims the feed at ' .
+ common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' .
+ $this->ip . ' claims the feed at ' .
$this->url . ' has been updated.');
}
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
**/
-class RSSCloudNotifier {
-
+class RSSCloudNotifier
+{
const MAX_FAILURES = 3;
/**
* Send an HTTP GET to the notification handler with a
* challenge string to see if it repsonds correctly.
*
- * @param String $endpoint URL of the notification handler
- * @param String $feed the feed being subscribed to
+ * @param string $endpoint URL of the notification handler
+ * @param string $feed the feed being subscribed to
*
* @return boolean success
*/
$url = $endpoint . '?' . http_build_query($params);
try {
- $client = new HTTPClient();
+ $client = new HTTPClient();
$response = $client->get($url);
} catch (HTTP_Request2_Exception $e) {
- common_log(LOG_INFO, 'RSSCloud plugin - failure testing notify handler ' .
+ common_log(LOG_INFO,
+ 'RSSCloud plugin - failure testing notify handler ' .
$endpoint . ' - ' . $e->getMessage());
return false;
}
* HTTP POST a notification that a feed has been updated
* ('ping the cloud').
*
- * @param String $endpoint URL of the notification handler
- * @param String $feed the feed being subscribed to
+ * @param String $endpoint URL of the notification handler
+ * @param String $feed the feed being subscribed to
*
* @return boolean success
*/
- function postUpdate($endpoint, $feed) {
+ function postUpdate($endpoint, $feed)
+ {
$headers = array();
$postdata = array('url' => $feed);
try {
- $client = new HTTPClient();
+ $client = new HTTPClient();
$response = $client->post($endpoint, $headers, $postdata);
} catch (HTTP_Request2_Exception $e) {
common_log(LOG_INFO, 'RSSCloud plugin - failure notifying ' .
$profile->nickname . '.rss';
$cloudSub = new RSSCloudSubscription();
+
$cloudSub->subscribed = $profile->id;
if ($cloudSub->find()) {
if ($failCnt == self::MAX_FAILURES) {
common_log(LOG_INFO,
- 'Deleting RSSCloud subcription (max failure count reached), profile: ' .
+ 'Deleting RSSCloud subcription ' .
+ '(max failure count reached), profile: ' .
$cloudSub->subscribed .
' handler: ' .
$cloudSub->url);
} else {
- common_debug('Updating failure count on RSSCloud subscription. ' . $failCnt);
+ common_debug('Updating failure count on RSSCloud subscription. ' .
+ $failCnt);
$failCnt = $cloudSub->failures + 1;
if (!$result) {
common_log_db_error($cloudsub, 'UPDATE', __FILE__);
- common_log(LOG_ERR, 'Could not update failure count on RSSCloud subscription');
+ common_log(LOG_ERR,
+ 'Could not update failure ' .
+ 'count on RSSCloud subscription');
}
- }
+ }
}
}
*
* Hook for RouterInitialized event.
*
+ * @param Mapper &$m URL parser and mapper
+ *
* @return boolean hook return
*/
function onRouterInitialized(&$m)
{
- $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify'));
+ $m->connect('/main/rsscloud/request_notify',
+ array('action' => 'RSSCloudRequestNotify'));
// XXX: This is just for end-to-end testing. Uncomment if you need to pretend
// to be a cloud hub for some reason.
- // $m->connect('/main/rsscloud/notify', array('action' => 'LoggingAggregator'));
+ //$m->connect('/main/rsscloud/notify',
+ // array('action' => 'LoggingAggregator'));
return true;
}
{
switch ($cls)
{
- case 'RSSCloudSubscription':
- include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php');
+ case 'RSSCloudSubscription':
+ include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php';
return false;
- case 'RSSCloudNotifier':
- include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php');
+ case 'RSSCloudNotifier':
+ include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php';
return false;
- case 'RSSCloudRequestNotifyAction':
- case 'LoggingAggregatorAction':
- include_once(INSTALLDIR . '/plugins/RSSCloud/' . mb_substr($cls, 0, -6) . '.php');
+ case 'RSSCloudRequestNotifyAction':
+ case 'LoggingAggregatorAction':
+ include_once INSTALLDIR . '/plugins/RSSCloud/' .
+ mb_substr($cls, 0, -6) . '.php';
return false;
- default:
+ default:
return true;
}
}
* Add a <cloud> element to the RSS feed (after the rss <channel>
* element is started).
*
- * @param Action $action
+ * @param Action $action the ApiAction
*
* @return void
*/
/**
* Determine whether the notice was locally created
*
- * @param Notice $notice
+ * @param Notice $notice the notice in question
*
* @return boolean locality
*/
* @return boolean hook return
*/
- function onCheckSchema() {
+ function onCheckSchema()
+ {
$schema = Schema::get();
$schema->ensureTable('rsscloud_subscription',
array(new ColumnDef('subscribed', 'integer',
null, false, null,
'CURRENT_TIMESTAMP',
'on update CURRENT_TIMESTAMP')
- )
- );
+ ));
return true;
}
{
parent::prepare($args);
- $this->ip = $_SERVER['REMOTE_ADDR'];
- $this->port = $this->arg('port');
- $this->path = $this->arg('path');
+ $this->ip = $_SERVER['REMOTE_ADDR'];
+ $this->port = $this->arg('port');
+ $this->path = $this->arg('path');
if ($this->path[0] != '/') {
$this->path = '/' . $this->path;
$this->procedure = $this->arg('notifyProcedure');
$this->domain = $this->arg('domain');
- $this->feeds = $this->getFeeds();
+ $this->feeds = $this->getFeeds();
return true;
}
}
if (empty($this->feeds)) {
- $msg = 'You must provide at least one valid profile feed url (url1, url2, url3 ... urlN).';
+ $msg = 'You must provide at least one valid profile feed url ' .
+ '(url1, url2, url3 ... urlN).';
$this->showResult(false, $msg);
return;
}
{
$feeds = array();
- while (list($key, $feed) = each ($this->args)) {
+ while (list($key, $feed) = each($this->args)) {
if (preg_match('/^url\d*$/', $key)) {
$feeds[] = $feed;
}
} else {
return 'http://' . $this->ip . ':' . $this->port . $this->path;
}
- }
+ }
/**
* Uses the nickname part of the subscribed feed URL to figure out
{
// We only do profile feeds
- $path = common_path('api/statuses/user_timeline/');
+ $path = common_path('api/statuses/user_timeline/');
$valid = '%^' . $path . '(?<nickname>.*)\.rss$%';
if (preg_match($valid, $feed, $matches)) {
/**
* Save an RSSCloud subscription
*
- * @param $feed a valid profile feed
+ * @param string $feed a valid profile feed
*
* @return boolean success result
*/
function showResult($success, $msg)
{
$this->startXML();
- $this->elementStart('notifyResult', array('success' => ($success) ? 'true' : 'false',
- 'msg' => $msg));
+ $this->elementStart('notifyResult',
+ array('success' => ($success) ? 'true' : 'false',
+ 'msg' => $msg));
$this->endXML();
}