* @author Zach Copley <zach@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
- **/
-
+ */
class RSSCloudPlugin extends Plugin
{
/**
*
* @return void
*/
-
function onInitializePlugin()
{
$this->domain = common_config('rsscloud', 'domain');
*
* Hook for RouterInitialized event.
*
- * @param Mapper &$m URL parser and mapper
+ * @param Mapper $m URL parser and mapper
*
* @return boolean hook return
*/
-
function onRouterInitialized($m)
{
$m->connect('/main/rsscloud/request_notify',
return true;
}
- /**
- * Automatically load the actions and libraries used by
- * the RSSCloud plugin
- *
- * @param Class $cls the class
- *
- * @return boolean hook return
- *
- */
-
- function onAutoload($cls)
- {
- switch ($cls)
- {
- case 'RSSCloudSubscription':
- include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php';
- return false;
- case 'RSSCloudNotifier':
- include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php';
- return false;
- case 'RSSCloudQueueHandler':
- include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudQueueHandler.php';
- return false;
- case 'RSSCloudRequestNotifyAction':
- case 'LoggingAggregatorAction':
- include_once INSTALLDIR . '/plugins/RSSCloud/' .
- mb_substr($cls, 0, -6) . '.php';
- return false;
- default:
- return true;
- }
- }
-
/**
* Add a <cloud> element to the RSS feed (after the rss <channel>
* element is started).
*
* @return void
*/
-
function onStartApiRss($action)
{
if (get_class($action) == 'ApiTimelineUserAction') {
function onStartEnqueueNotice($notice, &$transports)
{
- array_push($transports, 'rsscloud');
+ if ($notice->isLocal()) {
+ array_push($transports, 'rsscloud');
+ }
return true;
}
- /**
- * Determine whether the notice was locally created
- *
- * @param Notice $notice the notice in question
- *
- * @return boolean locality
- */
-
- function _isLocal($notice)
- {
- return ($notice->is_local == Notice::LOCAL_PUBLIC ||
- $notice->is_local == Notice::LOCAL_NONPUBLIC);
- }
-
/**
* Create the rsscloud_subscription table if it's not
* already in the DB
{
$schema = Schema::get();
$schema->ensureTable('rsscloud_subscription',
- array(new ColumnDef('subscribed', 'integer',
- null, false, 'PRI'),
- new ColumnDef('url', 'varchar',
- '255', false, 'PRI'),
- new ColumnDef('failures', 'integer',
- null, false, null, 0),
- new ColumnDef('created', 'datetime',
- null, false),
- new ColumnDef('modified', 'timestamp',
- null, false, null,
- 'CURRENT_TIMESTAMP',
- 'on update CURRENT_TIMESTAMP')
- ));
+ array(
+ 'fields' => array(
+ 'subscribed' => array('type' => 'int', 'not null' => true),
+ 'url' => array('type' => 'varchar', 'length' => '191', 'not null' => true),
+ 'failures' => array('type' => 'int', 'not null' => true, 'default' => 0),
+ 'created' => array('type' => 'datetime', 'not null' => true),
+ 'modified' => array('type' => 'timestamp', 'not null' => true),
+ ),
+ 'primary key' => array('subscribed', 'url'),
+ ));
return true;
}
return true;
}
- function onPluginVersion(&$versions)
+ function onPluginVersion(array &$versions)
{
$versions[] = array('name' => 'RSSCloud',
'version' => RSSCLOUDPLUGIN_VERSION,
'author' => 'Zach Copley',
'homepage' => 'http://status.net/wiki/Plugin:RSSCloud',
'rawdescription' =>
+ // TRANS: Plugin description.
_m('The RSSCloud plugin enables your StatusNet instance to publish ' .
'real-time updates for profile RSS feeds using the ' .
- '<a href="http://rsscloud.org/">RSSCloud protocol</a>".'));
+ '<a href="http://rsscloud.org/">RSSCloud protocol</a>.'));
return true;
}
-
}
-