Merge pull request #10627 from annando/like-announce
Reliably display "like" and "share" notifications
This commit is contained in:
commit
0651ace4e4
3 changed files with 23 additions and 8 deletions
|
@ -605,7 +605,10 @@ function notification_store_and_send($params, $sitelink, $tsitelink, $hsitelink,
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -636,6 +639,7 @@ function notification_from_array(array $notification)
|
|||
['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;
|
||||
}
|
||||
|
||||
|
@ -646,15 +650,16 @@ function notification_from_array(array $notification)
|
|||
$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;
|
||||
}
|
||||
|
||||
|
@ -682,6 +687,7 @@ function notification_from_array(array $notification)
|
|||
|
||||
$msg = Notification::getMessage($notification);
|
||||
if (empty($msg)) {
|
||||
Logger::info('No notification message, quitting', ['uid' => $notification['uid'], 'id' => $notification['id'], 'type' => $notification['type']]);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -696,6 +702,8 @@ function notification_from_array(array $notification)
|
|||
$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);
|
||||
}
|
||||
|
||||
|
|
|
@ -462,10 +462,10 @@ function ping_get_notifications($uid)
|
|||
&& 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -222,10 +222,17 @@ class Notification extends BaseModel
|
|||
}
|
||||
}
|
||||
|
||||
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])) {
|
||||
|
|
Loading…
Reference in a new issue