/**
* Hook for RouterInitialized event.
*
- * @param Net_URL_Mapper $m path-to-action mapper
+ * @param URLMapper $m path-to-action mapper
* @return boolean hook return
*/
- function onRouterInitialized($m)
+ public function onRouterInitialized(URLMapper $m)
{
// Discovery actions
$m->connect('main/ostatustag',
/**
* Put saved notices into the queue for pubsub distribution.
*/
- function onStartEnqueueNotice($notice, &$transports)
+ function onStartEnqueueNotice(Notice $notice, array &$transports)
{
if ($notice->inScope(null)) {
// put our transport first, in case there's any conflict (like OMB)
'type' => 'mention',
'text' => $target,
'position' => $pos,
- 'url' => $profile->profileurl);
+ 'url' => $profile->getUrl());
}
} catch (Exception $e) {
$this->log(LOG_ERR, "Webfinger check failed: " . $e->getMessage());
'type' => 'mention',
'text' => $target,
'position' => $pos,
- 'url' => $profile->profileurl);
+ 'url' => $profile->getUrl());
break;
}
} catch (Exception $e) {
if ($oprofile instanceof Ostatus_profile) {
$oprofile->processFeed($feed, 'push');
} else {
- common_log(LOG_DEBUG, "No ostatus profile for incoming feed $feedsub->uri");
+ common_debug("No ostatus profile for incoming feed $feedsub->uri");
}
}
$notice->getUrl());
$act->actor = $profile->asActivityObject();
- $act->object = ActivityObject::fromNotice($notice);
+ $act->object = $notice->asActivityObject();
$oprofile->notifyActivity($act, $profile);
$oprofile->query(sprintf($sql, $profile->id, $profile->id));
if ($oprofile->N == 0) {
- common_log(LOG_DEBUG, "No OStatus remote subscribees for $profile->nickname");
+ common_debug("No OStatus remote subscribees for $profile->nickname");
return true;
}
return true;
}
- function onPluginVersion(&$versions)
+ function onPluginVersion(array &$versions)
{
$versions[] = array('name' => 'OStatus',
'version' => GNUSOCIAL_VERSION,
if ($magicsig instanceof Magicsig) {
$xrd->links[] = new XML_XRD_Element_Link(Magicsig::PUBLICKEYREL,
'data:application/magic-public-key,'. $magicsig->toString());
+ $xrd->links[] = new XML_XRD_Element_Link(Magicsig::DIASPORA_PUBLICKEYREL,
+ base64_encode($magicsig->exportPublicKey()));
}
// TODO - finalize where the redirect should go on the publisher
static public function onCheckActivityAuthorship(Activity $activity, Profile &$profile)
{
try {
- $oprofile = Ostatus_profile::getFromProfile($profile);
- $oprofile = $oprofile->checkAuthorship($activity);
- $profile = $oprofile->localProfile();
+ $oprofile = Ostatus_profile::ensureProfileURL($profile->getUrl());
+ $profile = $oprofile->checkAuthorship($activity);
} catch (Exception $e) {
- common_log(LOG_ERR, 'Could not get a profile or check authorship ('.get_class($e).': "'.$e->getMessage().'")');
+ common_log(LOG_ERR, 'Could not get a profile or check authorship ('.get_class($e).': "'.$e->getMessage().'") for activity ID: '.$activity->id);
$profile = null;
return false;
}
return true;
}
+
+ public function onProfileDeleteRelated($profile, &$related)
+ {
+ // Ostatus_profile has a 'profile_id' property, which will be used to find the object
+ $related[] = 'Ostatus_profile';
+ return true;
+ }
}