Avoid empty notifications / fixed link to the content
This commit is contained in:
parent
4329f5381b
commit
fb6a435a6a
2 changed files with 9 additions and 8 deletions
|
@ -139,9 +139,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
|||
$this->logger->info('Parent post not found', ['uri-id' => $Notification->parentUriId]);
|
||||
return $message;
|
||||
}
|
||||
if ($Notification->type == Post\UserNotification::TYPE_COMMENT_PARTICIPATION) {
|
||||
$link_item = Post::selectFirst(['guid'], ['uri-id' => $Notification->targetUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
|
||||
}
|
||||
$link_item = Post::selectFirstPost(['guid'], ['uri-id' => $Notification->targetUriId]);
|
||||
} else {
|
||||
$item = Post::selectFirst([], ['uri-id' => $Notification->targetUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
|
||||
if (empty($item)) {
|
||||
|
@ -156,6 +154,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
|||
return $message;
|
||||
}
|
||||
}
|
||||
$link_item = $item;
|
||||
}
|
||||
|
||||
if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) {
|
||||
|
@ -166,7 +165,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
|||
}
|
||||
}
|
||||
|
||||
$link = $this->baseUrl . '/display/' . urlencode($link_item['guid'] ?? $item['guid']);
|
||||
$link = $this->baseUrl . '/display/' . urlencode($link_item['guid']);
|
||||
|
||||
$content = Plaintext::getPost($item, 70);
|
||||
if (!empty($content['text'])) {
|
||||
|
|
|
@ -27,6 +27,7 @@ use Friendica\BaseRepository;
|
|||
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Post\UserNotification;
|
||||
use Friendica\Model\Verb;
|
||||
use Friendica\Navigation\Notifications\Collection;
|
||||
use Friendica\Navigation\Notifications\Entity;
|
||||
|
@ -137,7 +138,8 @@ class Notification extends BaseRepository
|
|||
*/
|
||||
public function selectDigestForUser(int $uid): Collection\Notifications
|
||||
{
|
||||
$values = [$uid];
|
||||
$values = [$uid, Verb::getID(\Friendica\Protocol\Activity::ANNOUNCE),
|
||||
UserNotification::TYPE_COMMENT_PARTICIPATION, UserNotification::TYPE_ACTIVITY_PARTICIPATION, UserNotification::TYPE_THREAD_COMMENT];
|
||||
|
||||
$like_condition = '';
|
||||
if (!$this->pconfig->get($uid, 'system', 'notify_like')) {
|
||||
|
@ -154,10 +156,10 @@ class Notification extends BaseRepository
|
|||
$rows = $this->db->p("
|
||||
SELECT notification.*
|
||||
FROM notification
|
||||
WHERE id IN (
|
||||
WHERE `id` IN (
|
||||
SELECT MAX(`id`)
|
||||
FROM notification
|
||||
WHERE uid = ?
|
||||
FROM `notification`
|
||||
WHERE `uid` = ? AND NOT (`vid` = ? AND `type` IN (?, ?, ?))
|
||||
$like_condition
|
||||
$announce_condition
|
||||
GROUP BY IFNULL(`parent-uri-id`, `actor-id`)
|
||||
|
|
Loading…
Reference in a new issue