/**
* 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)
* @param array &$mention in/out param: set of found mentions
* @return boolean hook return value
*/
- function onEndFindMentions(Profile $sender, $text, &$mentions)
+ function onEndFindMentions($sender, $text, &$mentions)
{
$matches = array();
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");
}
}
$oprofile->notifyActivity($act, $user);
}
+ /**
+ * Notify remote users when their notices get favorited.
+ *
+ * @param Profile or User $profile of local user doing the faving
+ * @param Notice $notice being favored
+ * @return hook return value
+ */
+ function onEndFavorNotice(Profile $profile, Notice $notice)
+ {
+ // Only distribute local users' favor actions, remote users
+ // will have already distributed theirs.
+ if (!$profile->isLocal()) {
+ return true;
+ }
+
+ $oprofile = Ostatus_profile::getKV('profile_id', $notice->profile_id);
+ if (!$oprofile instanceof Ostatus_profile) {
+ return true;
+ }
+
+ $fav = Fave::pkeyGet(array('user_id' => $profile->id,
+ 'notice_id' => $notice->id));
+
+ if (!$fav instanceof Fave) {
+ // That's weird.
+ // TODO: Make pkeyGet throw exception, since this is a critical failure.
+ return true;
+ }
+
+ $act = $fav->asActivity();
+
+ $oprofile->notifyActivity($act, $profile);
+
+ return true;
+ }
+
/**
* Notify remote user it has got a new people tag
* - tag verb is queued
$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,
return true;
}
- public function onProfileDeleteRelated($profile, &$related)
+ public function onProfileDeleteRelated(Profile $profile, array &$related)
{
// Ostatus_profile has a 'profile_id' property, which will be used to find the object
$related[] = 'Ostatus_profile';