function notification_from_array(array $notification)
{
+ Logger::info('Start', ['uid' => $notification['uid'], 'id' => $notification['id'], 'type' => $notification['type']]);
+
if ($notification['type'] == Post\UserNotification::NOTIF_NONE) {
+ Logger::info('Not an item based notification, quitting', ['uid' => $notification['uid'], 'id' => $notification['id'], 'type' => $notification['type']]);
return false;
}
['uid' => [0, $notification['uid']], 'uri-id' => $notification['target-uri-id'], 'deleted' => false],
['order' => ['uid' => true]]);
if (empty($item)) {
+ Logger::info('Item not found', ['uri-id' => $notification['target-uri-id'], 'type' => $notification['type']]);
return false;
}
$subjectPrefix = $l10n->t('[Friendica:Notify]');
if (Post\ThreadUser::getIgnored($notification['parent-uri-id'], $notification['uid'])) {
- Logger::info('Thread is ignored', ['parent-uri-id' => $notification['parent-uri-id']]);
+ Logger::info('Thread is ignored', ['parent-uri-id' => $notification['parent-uri-id'], 'type' => $notification['type']]);
return false;
}
// Check to see if there was already a tag notify or comment notify for this post.
// If so don't create a second notification
$condition = ['type' => [Notification\Type::TAG_SELF, Notification\Type::COMMENT, Notification\Type::SHARE],
- 'link' => $params['link'], 'uid' => $notification['uid']];
+ 'link' => $params['link'], 'verb' => Activity::POST, 'uid' => $notification['uid']];
if (DBA::exists('notify', $condition)) {
+ Logger::info('Duplicate found, quitting', $condition);
return false;
}
$msg = Notification::getMessage($notification);
if (empty($msg)) {
+ Logger::info('No notification message, quitting', ['uid' => $notification['uid'], 'id' => $notification['id'], 'type' => $notification['type']]);
return false;
}
$hsitelink = sprintf($sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link'];
+ Logger::info('Perform notification', ['uid' => $notification['uid'], 'id' => $notification['id'], 'type' => $notification['type']]);
+
return notification_store_and_send($params, $sitelink, $tsitelink, $hsitelink, $title, $subject, $preamble, $epreamble, $item['body'], $itemlink, true);
}
&& empty($result[$notification['parent']])
) {
// Should we condense the notifications or show them all?
- if (DI::pConfig()->get(local_user(), 'system', 'detailed_notif')) {
- $result[$notification["id"]] = $notification;
+ if (($notification['verb'] != Activity::POST) || DI::pConfig()->get(local_user(), 'system', 'detailed_notif')) {
+ $result[] = $notification;
} else {
- $result[$notification['parent']] = $notification;
+ $result['p:' . $notification['parent']] = $notification;
}
}
}
}
}
- if (($notification['type'] == Post\UserNotification::NOTIF_SHARED) && !empty($item['causer-id'])) {
- $causer = Contact::getById($item['causer-id'], ['id', 'name', 'url']);
+ if ($item['owner-id'] != $item['author-id']) {
+ $cid = $item['owner-id'];
+ }
+ if (!empty($item['causer-id']) && ($item['causer-id'] != $item['author-id'])) {
+ $cid = $item['causer-id'];
+ }
+
+ if (($notification['type'] == Post\UserNotification::NOTIF_SHARED) && !empty($cid)) {
+ $causer = Contact::getById($cid, ['id', 'name', 'url']);
if (empty($contact)) {
- Logger::info('Causer not found', ['causer' => $item['causer-id']]);
+ Logger::info('Causer not found', ['causer' => $cid]);
return $message;
}
} elseif (in_array($notification['type'], [Post\UserNotification::NOTIF_COMMENT_PARTICIPATION, Post\UserNotification::NOTIF_ACTIVITY_PARTICIPATION])) {