Merge pull request #8239 from nupplaphil/task/move_enotify_parts

Move Notify "type" and "otype" into own enum classes
This commit is contained in:
Hypolite Petovan 2020-02-05 16:56:54 -05:00 committed by GitHub
commit 6347578978
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 149 additions and 74 deletions

View file

@ -22,6 +22,7 @@ use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Notify;
use Friendica\Model\Term; use Friendica\Model\Term;
use Friendica\Util\BasePath; use Friendica\Util\BasePath;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
@ -140,19 +141,31 @@ define('MAX_LIKERS', 75);
* Email notification options * Email notification options
* @{ * @{
*/ */
define('NOTIFY_INTRO', 1); /** @deprecated since 2020.03, use Notify\Type::INTRO instead */
define('NOTIFY_CONFIRM', 2); define('NOTIFY_INTRO', Notify\Type::INTRO);
define('NOTIFY_WALL', 4); /** @deprecated since 2020.03, use Notify\Type::CONFIRM instead */
define('NOTIFY_COMMENT', 8); define('NOTIFY_CONFIRM', Notify\Type::CONFIRM);
define('NOTIFY_MAIL', 16); /** @deprecated since 2020.03, use Notify\Type::WALL instead */
define('NOTIFY_SUGGEST', 32); define('NOTIFY_WALL', Notify\Type::WALL);
define('NOTIFY_PROFILE', 64); /** @deprecated since 2020.03, use Notify\Type::COMMENT instead */
define('NOTIFY_TAGSELF', 128); define('NOTIFY_COMMENT', Notify\Type::COMMENT);
define('NOTIFY_TAGSHARE', 256); /** @deprecated since 2020.03, use Notify\Type::MAIL instead */
define('NOTIFY_POKE', 512); define('NOTIFY_MAIL', Notify\Type::MAIL);
define('NOTIFY_SHARE', 1024); /** @deprecated since 2020.03, use Notify\Type::SUGGEST instead */
define('NOTIFY_SUGGEST', Notify\Type::SUGGEST);
/** @deprecated since 2020.03, use Notify\Type::PROFILE instead */
define('NOTIFY_PROFILE', Notify\Type::PROFILE);
/** @deprecated since 2020.03, use Notify\Type::TAG_SELF instead */
define('NOTIFY_TAGSELF', Notify\Type::TAG_SELF);
/** @deprecated since 2020.03, use Notify\Type::TAG_SHARE instead */
define('NOTIFY_TAGSHARE', Notify\Type::TAG_SHARE);
/** @deprecated since 2020.03, use Notify\Type::POKE instead */
define('NOTIFY_POKE', Notify\Type::POKE);
/** @deprecated since 2020.03, use Notify\Type::SHARE instead */
define('NOTIFY_SHARE', Notify\Type::SHARE);
define('NOTIFY_SYSTEM', 32768); /** @deprecated since 2020.12, use Notify\Type::SYSTEM instead */
define('NOTIFY_SYSTEM', Notify\Type::SYSTEM);
/* @}*/ /* @}*/

View file

@ -5906,7 +5906,7 @@ function api_friendica_notification_seen($type)
$notify = DI::notify()->getByID($id); $notify = DI::notify()->getByID($id);
DI::notify()->setSeen(true, $notify); DI::notify()->setSeen(true, $notify);
if ($notify->otype === Notify::OTYPE_ITEM) { if ($notify->otype === Notify\ObjectType::ITEM) {
$item = Item::selectFirstForUser(api_user(), [], ['id' => $notify->iid, 'uid' => api_user()]); $item = Item::selectFirstForUser(api_user(), [], ['id' => $notify->iid, 'uid' => api_user()]);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
// we found the item, return it to the user // we found the item, return it to the user

View file

@ -30,6 +30,9 @@ use Friendica\Protocol\Activity;
*/ */
function notification($params) function notification($params)
{ {
/** @var string the common prefix of a notification subject */
$subjectPrefix = DI::l10n()->t('[Friendica:Notify]');
// Temporary logging for finding the origin // Temporary logging for finding the origin
if (!isset($params['uid'])) { if (!isset($params['uid'])) {
Logger::notice('Missing parameters "uid".', ['params' => $params, 'callstack' => System::callstack()]); Logger::notice('Missing parameters "uid".', ['params' => $params, 'callstack' => System::callstack()]);
@ -102,11 +105,11 @@ function notification($params)
$hsitelink = ''; $hsitelink = '';
$itemlink = ''; $itemlink = '';
if ($params['type'] == NOTIFY_MAIL) { if ($params['type'] == Notify\Type::MAIL) {
$itemlink = $siteurl.'/message/'.$params['item']['id']; $itemlink = $siteurl.'/message/'.$params['item']['id'];
$params["link"] = $itemlink; $params["link"] = $itemlink;
$subject = $l10n->t('[Friendica:Notify] New mail received at %s', $sitename); $subject = $l10n->t( '%s New mail received at %s', $subjectPrefix, $sitename);
$preamble = $l10n->t('%1$s sent you a new private message at %2$s.', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s sent you a new private message at %2$s.', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s sent you %2$s.', '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', '[url=' . $itemlink . ']' . $l10n->t('a private message').'[/url]'); $epreamble = $l10n->t('%1$s sent you %2$s.', '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', '[url=' . $itemlink . ']' . $l10n->t('a private message').'[/url]');
@ -116,7 +119,7 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'/message/'.$params['item']['id'].'">'.$sitename.'</a>'); $hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'/message/'.$params['item']['id'].'">'.$sitename.'</a>');
} }
if ($params['type'] == NOTIFY_COMMENT || $params['type'] == NOTIFY_TAGSELF) { if ($params['type'] == Notify\Type::COMMENT || $params['type'] == Notify\Type::TAG_SELF) {
$thread = Item::selectFirstThreadForUser($params['uid'], ['ignored'], ['iid' => $parent_id, 'deleted' => false]); $thread = Item::selectFirstThreadForUser($params['uid'], ['ignored'], ['iid' => $parent_id, 'deleted' => false]);
if (DBA::isResult($thread) && $thread['ignored']) { if (DBA::isResult($thread) && $thread['ignored']) {
Logger::log('Thread ' . $parent_id . ' will be ignored', Logger::DEBUG); Logger::log('Thread ' . $parent_id . ' will be ignored', Logger::DEBUG);
@ -126,7 +129,7 @@ function notification($params)
// Check to see if there was already a tag notify or comment notify for this post. // Check to see if there was already a tag notify or comment notify for this post.
// If so don't create a second notification // If so don't create a second notification
/// @todo In the future we should store the notification with the highest "value" and replace notifications /// @todo In the future we should store the notification with the highest "value" and replace notifications
$condition = ['type' => [NOTIFY_TAGSELF, NOTIFY_COMMENT, NOTIFY_SHARE], $condition = ['type' => [Notify\Type::TAG_SELF, Notify\Type::COMMENT, Notify\Type::SHARE],
'link' => $params['link'], 'uid' => $params['uid']]; 'link' => $params['link'], 'uid' => $params['uid']];
if (DBA::exists('notify', $condition)) { if (DBA::exists('notify', $condition)) {
return false; return false;
@ -134,7 +137,7 @@ function notification($params)
// if it's a post figure out who's post it is. // if it's a post figure out who's post it is.
$item = null; $item = null;
if ($params['otype'] === Notify::OTYPE_ITEM && $parent_id) { if ($params['otype'] === Notify\ObjectType::ITEM && $parent_id) {
$item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]); $item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]);
} }
@ -195,11 +198,11 @@ function notification($params)
// Before this we have the name of the replier on the subject rendering // Before this we have the name of the replier on the subject rendering
// different subjects for messages on the same thread. // different subjects for messages on the same thread.
if ($params['activity']['explicit_tagged']) { if ($params['activity']['explicit_tagged']) {
$subject = $l10n->t('[Friendica:Notify] %s tagged you', $params['source_name']); $subject = $l10n->t('%s %s tagged you', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s tagged you at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s tagged you at %2$s', $params['source_name'], $sitename);
} else { } else {
$subject = $l10n->t('[Friendica:Notify] Comment to conversation #%1$d by %2$s', $parent_id, $params['source_name']); $subject = $l10n->t('%s Comment to conversation #%1$d by %2$s', $subjectPrefix, $parent_id, $params['source_name']);
$preamble = $l10n->t('%s commented on an item/conversation you have been following.', $params['source_name']); $preamble = $l10n->t('%s commented on an item/conversation you have been following.', $params['source_name']);
} }
@ -212,8 +215,8 @@ function notification($params)
$itemlink = $params['link']; $itemlink = $params['link'];
} }
if ($params['type'] == NOTIFY_WALL) { if ($params['type'] == Notify\Type::WALL) {
$subject = $l10n->t('[Friendica:Notify] %s posted to your profile wall', $params['source_name']); $subject = $l10n->t('%s %s posted to your profile wall', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s posted to your profile wall at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s posted to your profile wall at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s posted to [url=%2$s]your wall[/url]', $epreamble = $l10n->t('%1$s posted to [url=%2$s]your wall[/url]',
@ -227,8 +230,8 @@ function notification($params)
$itemlink = $params['link']; $itemlink = $params['link'];
} }
if ($params['type'] == NOTIFY_SHARE) { if ($params['type'] == Notify\Type::SHARE) {
$subject = $l10n->t('[Friendica:Notify] %s shared a new post', $params['source_name']); $subject = $l10n->t('%s %s shared a new post', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s shared a new post at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s shared a new post at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s [url=%2$s]shared a post[/url].', $epreamble = $l10n->t('%1$s [url=%2$s]shared a post[/url].',
@ -242,8 +245,8 @@ function notification($params)
$itemlink = $params['link']; $itemlink = $params['link'];
} }
if ($params['type'] == NOTIFY_POKE) { if ($params['type'] == Notify\Type::POKE) {
$subject = $l10n->t('[Friendica:Notify] %1$s poked you', $params['source_name']); $subject = $l10n->t('%s %1$s poked you', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s poked you at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s poked you at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s [url=%2$s]poked you[/url].', $epreamble = $l10n->t('%1$s [url=%2$s]poked you[/url].',
@ -261,9 +264,9 @@ function notification($params)
$itemlink = $params['link']; $itemlink = $params['link'];
} }
if ($params['type'] == NOTIFY_TAGSHARE) { if ($params['type'] == Notify\Type::TAG_SHARE) {
$itemlink = $params['link']; $itemlink = $params['link'];
$subject = $l10n->t('[Friendica:Notify] %s tagged your post', $params['source_name']); $subject = $l10n->t('%s %s tagged your post', $subjectPrefix, $params['source_name']);
$preamble = $l10n->t('%1$s tagged your post at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s tagged your post at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s tagged [url=%2$s]your post[/url]', $epreamble = $l10n->t('%1$s tagged [url=%2$s]your post[/url]',
@ -276,9 +279,9 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>'); $hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
} }
if ($params['type'] == NOTIFY_INTRO) { if ($params['type'] == Notify\Type::INTRO) {
$itemlink = $params['link']; $itemlink = $params['link'];
$subject = $l10n->t('[Friendica:Notify] Introduction received'); $subject = $l10n->t('%s Introduction received', $subjectPrefix);
$preamble = $l10n->t('You\'ve received an introduction from \'%1$s\' at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('You\'ve received an introduction from \'%1$s\' at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.', $epreamble = $l10n->t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.',
@ -295,7 +298,7 @@ function notification($params)
switch ($params['verb']) { switch ($params['verb']) {
case Activity::FRIEND: case Activity::FRIEND:
// someone started to share with user (mostly OStatus) // someone started to share with user (mostly OStatus)
$subject = $l10n->t('[Friendica:Notify] A new person is sharing with you'); $subject = $l10n->t('%s A new person is sharing with you', $subjectPrefix);
$preamble = $l10n->t('%1$s is sharing with you at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('%1$s is sharing with you at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%1$s is sharing with you at %2$s', $epreamble = $l10n->t('%1$s is sharing with you at %2$s',
@ -305,7 +308,7 @@ function notification($params)
break; break;
case Activity::FOLLOW: case Activity::FOLLOW:
// someone started to follow the user (mostly OStatus) // someone started to follow the user (mostly OStatus)
$subject = $l10n->t('[Friendica:Notify] You have a new follower'); $subject = $l10n->t('%s You have a new follower', $subjectPrefix);
$preamble = $l10n->t('You have a new follower at %2$s : %1$s', $params['source_name'], $sitename); $preamble = $l10n->t('You have a new follower at %2$s : %1$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('You have a new follower at %2$s : %1$s', $epreamble = $l10n->t('You have a new follower at %2$s : %1$s',
@ -319,9 +322,9 @@ function notification($params)
} }
} }
if ($params['type'] == NOTIFY_SUGGEST) { if ($params['type'] == Notify\Type::SUGGEST) {
$itemlink = $params['link']; $itemlink = $params['link'];
$subject = $l10n->t('[Friendica:Notify] Friend suggestion received'); $subject = $l10n->t('%s Friend suggestion received', $subjectPrefix);
$preamble = $l10n->t('You\'ve received a friend suggestion from \'%1$s\' at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('You\'ve received a friend suggestion from \'%1$s\' at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.', $epreamble = $l10n->t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.',
@ -339,10 +342,10 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>'); $hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
} }
if ($params['type'] == NOTIFY_CONFIRM) { if ($params['type'] == Notify\Type::CONFIRM) {
if ($params['verb'] == Activity::FRIEND) { // mutual connection if ($params['verb'] == Activity::FRIEND) { // mutual connection
$itemlink = $params['link']; $itemlink = $params['link'];
$subject = $l10n->t('[Friendica:Notify] Connection accepted'); $subject = $l10n->t('%s Connection accepted', $subjectPrefix);
$preamble = $l10n->t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].', $epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].',
@ -357,7 +360,7 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>'); $hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
} else { // ACTIVITY_FOLLOW } else { // ACTIVITY_FOLLOW
$itemlink = $params['link']; $itemlink = $params['link'];
$subject = $l10n->t('[Friendica:Notify] Connection accepted'); $subject = $l10n->t('%s Connection accepted', $subjectPrefix);
$preamble = $l10n->t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename); $preamble = $l10n->t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename);
$epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].', $epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].',
@ -375,7 +378,7 @@ function notification($params)
} }
} }
if ($params['type'] == NOTIFY_SYSTEM) { if ($params['type'] == Notify\Type::SYSTEM) {
switch($params['event']) { switch($params['event']) {
case "SYSTEM_REGISTER_REQUEST": case "SYSTEM_REGISTER_REQUEST":
$itemlink = $params['link']; $itemlink = $params['link'];
@ -456,7 +459,7 @@ function notification($params)
// send email notification if notification preferences permit // send email notification if notification preferences permit
if ((intval($params['notify_flags']) & intval($params['type'])) if ((intval($params['notify_flags']) & intval($params['type']))
|| $params['type'] == NOTIFY_SYSTEM) { || $params['type'] == Notify\Type::SYSTEM) {
Logger::log('sending notification email'); Logger::log('sending notification email');
@ -589,25 +592,25 @@ function check_item_notification($itemid, $uid, $notification_type) {
} }
if ($notification_type & UserItem::NOTIF_SHARED) { if ($notification_type & UserItem::NOTIF_SHARED) {
$params['type'] = NOTIFY_SHARE; $params['type'] = Notify\Type::SHARE;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_EXPLICIT_TAGGED) { } elseif ($notification_type & UserItem::NOTIF_EXPLICIT_TAGGED) {
$params['type'] = NOTIFY_TAGSELF; $params['type'] = Notify\Type::TAG_SELF;
$params['verb'] = Activity::TAG; $params['verb'] = Activity::TAG;
} elseif ($notification_type & UserItem::NOTIF_IMPLICIT_TAGGED) { } elseif ($notification_type & UserItem::NOTIF_IMPLICIT_TAGGED) {
$params['type'] = NOTIFY_COMMENT; $params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_THREAD_COMMENT) { } elseif ($notification_type & UserItem::NOTIF_THREAD_COMMENT) {
$params['type'] = NOTIFY_COMMENT; $params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_DIRECT_COMMENT) { } elseif ($notification_type & UserItem::NOTIF_DIRECT_COMMENT) {
$params['type'] = NOTIFY_COMMENT; $params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION) { } elseif ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION) {
$params['type'] = NOTIFY_COMMENT; $params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION) { } elseif ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION) {
$params['type'] = NOTIFY_COMMENT; $params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;
} else { } else {
return false; return false;

View file

@ -26,6 +26,7 @@ use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\Notify\Type;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Friendica\Util\Crypto; use Friendica\Util\Crypto;
@ -525,10 +526,10 @@ function dfrn_confirm_post(App $a, $handsfree = null)
if (DBA::isResult($r)) { if (DBA::isResult($r)) {
$combined = $r[0]; $combined = $r[0];
if ($combined['notify-flags'] & NOTIFY_CONFIRM) { if ($combined['notify-flags'] & Type::CONFIRM) {
$mutual = ($new_relation == Contact::FRIEND); $mutual = ($new_relation == Contact::FRIEND);
notification([ notification([
'type' => NOTIFY_CONFIRM, 'type' => Type::CONFIRM,
'notify_flags' => $combined['notify-flags'], 'notify_flags' => $combined['notify-flags'],
'language' => $combined['language'], 'language' => $combined['language'],
'to_name' => $combined['username'], 'to_name' => $combined['username'],

View file

@ -23,6 +23,7 @@ use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\Notify\Type;
use Friendica\Model\Profile; use Friendica\Model\Profile;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
@ -552,7 +553,7 @@ function dfrn_request_content(App $a)
if (!$auto_confirm) { if (!$auto_confirm) {
notification([ notification([
'type' => NOTIFY_INTRO, 'type' => Type::INTRO,
'notify_flags' => $r[0]['notify-flags'], 'notify_flags' => $r[0]['notify-flags'],
'language' => $r[0]['language'], 'language' => $r[0]['language'],
'to_name' => $r[0]['username'], 'to_name' => $r[0]['username'],

View file

@ -31,6 +31,7 @@ use Friendica\Model\Contact;
use Friendica\Model\Conversation; use Friendica\Model\Conversation;
use Friendica\Model\FileTag; use Friendica\Model\FileTag;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Notify\Type;
use Friendica\Model\Photo; use Friendica\Model\Photo;
use Friendica\Model\Term; use Friendica\Model\Term;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
@ -751,7 +752,7 @@ function item_post(App $a) {
if ($toplevel_item_id) { if ($toplevel_item_id) {
if ($contact_record != $author) { if ($contact_record != $author) {
notification([ notification([
'type' => NOTIFY_COMMENT, 'type' => Type::COMMENT,
'notify_flags' => $user['notify-flags'], 'notify_flags' => $user['notify-flags'],
'language' => $user['language'], 'language' => $user['language'],
'to_name' => $user['username'], 'to_name' => $user['username'],
@ -771,7 +772,7 @@ function item_post(App $a) {
} else { } else {
if (($contact_record != $author) && !count($forum_contact)) { if (($contact_record != $author) && !count($forum_contact)) {
notification([ notification([
'type' => NOTIFY_WALL, 'type' => Type::WALL,
'notify_flags' => $user['notify-flags'], 'notify_flags' => $user['notify-flags'],
'language' => $user['language'], 'language' => $user['language'],
'to_name' => $user['username'], 'to_name' => $user['username'],

View file

@ -13,6 +13,7 @@ use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Mail; use Friendica\Model\Mail;
use Friendica\Model\Notify\Type;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\Proxy as ProxyUtils;
@ -338,10 +339,10 @@ function message_content(App $a)
if ($message['convid']) { if ($message['convid']) {
// Clear Diaspora private message notifications // Clear Diaspora private message notifications
DBA::update('notify', ['seen' => 1], ['type' => NOTIFY_MAIL, 'parent' => $message['convid'], 'uid' => local_user()]); DBA::update('notify', ['seen' => 1], ['type' => Type::MAIL, 'parent' => $message['convid'], 'uid' => local_user()]);
} }
// Clear DFRN private message notifications // Clear DFRN private message notifications
DBA::update('notify', ['seen' => 1], ['type' => NOTIFY_MAIL, 'parent' => $message['parent-uri'], 'uid' => local_user()]); DBA::update('notify', ['seen' => 1], ['type' => Type::MAIL, 'parent' => $message['parent-uri'], 'uid' => local_user()]);
} else { } else {
$messages = false; $messages = false;
} }

View file

@ -13,6 +13,7 @@ use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Notify\Type;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal; use Friendica\Util\Temporal;
use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\Proxy as ProxyUtils;
@ -403,8 +404,8 @@ function ping_get_notifications($uid)
AND NOT (`notify`.`type` IN (%d, %d)) AND NOT (`notify`.`type` IN (%d, %d))
AND $seensql `notify`.`seen` ORDER BY `notify`.`date` $order LIMIT %d, 50", AND $seensql `notify`.`seen` ORDER BY `notify`.`date` $order LIMIT %d, 50",
intval($uid), intval($uid),
intval(NOTIFY_INTRO), intval(Type::INTRO),
intval(NOTIFY_MAIL), intval(Type::MAIL),
intval($offset) intval($offset)
); );

View file

@ -19,6 +19,7 @@ use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\GContact; use Friendica\Model\GContact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\Notify\Type;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
use Friendica\Protocol\Email; use Friendica\Protocol\Email;
@ -1229,14 +1230,14 @@ function settings_content(App $a)
'$h_not' => DI::l10n()->t('Notification Settings'), '$h_not' => DI::l10n()->t('Notification Settings'),
'$lbl_not' => DI::l10n()->t('Send a notification email when:'), '$lbl_not' => DI::l10n()->t('Send a notification email when:'),
'$notify1' => ['notify1', DI::l10n()->t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''], '$notify1' => ['notify1', DI::l10n()->t('You receive an introduction'), ($notify & Type::INTRO), Type::INTRO, ''],
'$notify2' => ['notify2', DI::l10n()->t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''], '$notify2' => ['notify2', DI::l10n()->t('Your introductions are confirmed'), ($notify & Type::CONFIRM), Type::CONFIRM, ''],
'$notify3' => ['notify3', DI::l10n()->t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''], '$notify3' => ['notify3', DI::l10n()->t('Someone writes on your profile wall'), ($notify & Type::WALL), Type::WALL, ''],
'$notify4' => ['notify4', DI::l10n()->t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''], '$notify4' => ['notify4', DI::l10n()->t('Someone writes a followup comment'), ($notify & Type::COMMENT), Type::COMMENT, ''],
'$notify5' => ['notify5', DI::l10n()->t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''], '$notify5' => ['notify5', DI::l10n()->t('You receive a private message'), ($notify & Type::MAIL), Type::MAIL, ''],
'$notify6' => ['notify6', DI::l10n()->t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''], '$notify6' => ['notify6', DI::l10n()->t('You receive a friend suggestion'), ($notify & Type::SUGGEST), Type::SUGGEST, ''],
'$notify7' => ['notify7', DI::l10n()->t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''], '$notify7' => ['notify7', DI::l10n()->t('You are tagged in a post'), ($notify & Type::TAG_SELF), Type::TAG_SELF, ''],
'$notify8' => ['notify8', DI::l10n()->t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''], '$notify8' => ['notify8', DI::l10n()->t('You are poked/prodded/etc. in a post'), ($notify & Type::POKE), Type::POKE, ''],
'$desktop_notifications' => ['desktop_notifications', DI::l10n()->t('Activate desktop notifications') , false, DI::l10n()->t('Show desktop popup on new notifications')], '$desktop_notifications' => ['desktop_notifications', DI::l10n()->t('Activate desktop notifications') , false, DI::l10n()->t('Show desktop popup on new notifications')],

View file

@ -14,6 +14,7 @@ use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Notify\Type;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub; use Friendica\Protocol\ActivityPub;
@ -2628,11 +2629,11 @@ class Contact
Group::addMember(User::getDefaultGroup($importer['uid'], $contact_record["network"]), $contact_record['id']); Group::addMember(User::getDefaultGroup($importer['uid'], $contact_record["network"]), $contact_record['id']);
if (($user['notify-flags'] & NOTIFY_INTRO) && if (($user['notify-flags'] & Type::INTRO) &&
in_array($user['page-flags'], [User::PAGE_FLAGS_NORMAL])) { in_array($user['page-flags'], [User::PAGE_FLAGS_NORMAL])) {
notification([ notification([
'type' => NOTIFY_INTRO, 'type' => Type::INTRO,
'notify_flags' => $user['notify-flags'], 'notify_flags' => $user['notify-flags'],
'language' => $user['language'], 'language' => $user['language'],
'to_name' => $user['username'], 'to_name' => $user['username'],

View file

@ -10,6 +10,7 @@ use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\DI; use Friendica\DI;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\Notify\Type;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
@ -68,7 +69,7 @@ class Mail
// send notifications. // send notifications.
$notif_params = [ $notif_params = [
'type' => NOTIFY_MAIL, 'type' => Type::MAIL,
'notify_flags' => $user['notify-flags'], 'notify_flags' => $user['notify-flags'],
'language' => $user['language'], 'language' => $user['language'],
'to_name' => $user['username'], 'to_name' => $user['username'],

View file

@ -31,10 +31,6 @@ use Psr\Log\LoggerInterface;
*/ */
class Notify extends BaseModel class Notify extends BaseModel
{ {
const OTYPE_ITEM = 'item';
const OTYPE_INTRO = 'intro';
const OTYPE_MAIL = 'mail';
const OTYPE_PERSON = 'person';
/** @var \Friendica\Repository\Notify */ /** @var \Friendica\Repository\Notify */
private $repo; private $repo;

View file

@ -0,0 +1,14 @@
<?php
namespace Friendica\Model\Notify;
/**
* Enum for different otypes of the Notify
*/
class ObjectType
{
const PERSON = 'person';
const MAIL = 'mail';
const ITEM = 'item';
const INTRO = 'intro';
}

39
src/Model/Notify/Type.php Normal file
View file

@ -0,0 +1,39 @@
<?php
namespace Friendica\Model\Notify;
/**
* Enum for different types of the Notify
*/
class Type
{
/** @var int Notification about a introduction */
const INTRO = 1;
/** @var int Notification about a confirmed introduction */
const CONFIRM = 2;
/** @var int Notification about a post on your wall */
const WALL = 4;
/** @var int Notification about a followup comment */
const COMMENT = 8;
/** @var int Notification about a private message */
const MAIL = 16;
/** @var int Notification about a friend suggestion */
const SUGGEST = 32;
/** @var int Unknown Notification
* @deprecated
*/
const PROFILE = 64;
/** @var int Notification about being tagged in a post */
const TAG_SELF = 128;
/** @var int Notification about being tagged
* @deprecated
*/
const TAG_SHARE = 256;
/** @var int Notification about getting poked/prodded/etc. */
const POKE = 512;
/** @var int Notification about either a contact had posted something directly or the contact is a mentioned forum */
const SHARE = 1024;
/** @var int Global System notifications */
const SYSTEM = 32768;
}

View file

@ -9,6 +9,7 @@ use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Notify\Type;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Network\HTTPException\ForbiddenException; use Friendica\Network\HTTPException\ForbiddenException;
@ -111,7 +112,7 @@ class Delegation extends BaseModule
$identities[$key]['selected'] = ($identity['nickname'] === DI::app()->user['nickname']); $identities[$key]['selected'] = ($identity['nickname'] === DI::app()->user['nickname']);
$condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $identity['uid'], NOTIFY_INTRO, NOTIFY_MAIL]; $condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $identity['uid'], Type::INTRO, Type::MAIL];
$params = ['distinct' => true, 'expression' => 'parent']; $params = ['distinct' => true, 'expression' => 'parent'];
$notifications = DBA::count('notify', $condition, $params); $notifications = DBA::count('notify', $condition, $params);

View file

@ -348,7 +348,7 @@ class Register extends BaseModule
// send notification to admins // send notification to admins
while ($admin = DBA::fetch($admins_stmt)) { while ($admin = DBA::fetch($admins_stmt)) {
\notification([ \notification([
'type' => NOTIFY_SYSTEM, 'type' => Model\Notify\Type::SYSTEM,
'event' => 'SYSTEM_REGISTER_REQUEST', 'event' => 'SYSTEM_REGISTER_REQUEST',
'source_name' => $user['username'], 'source_name' => $user['username'],
'source_mail' => $user['email'], 'source_mail' => $user['email'],

View file

@ -25,6 +25,7 @@ use Friendica\Model\Event;
use Friendica\Model\GContact; use Friendica\Model\GContact;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Mail; use Friendica\Model\Mail;
use Friendica\Model\Notify\Type;
use Friendica\Model\PermissionSet; use Friendica\Model\PermissionSet;
use Friendica\Model\Profile; use Friendica\Model\Profile;
use Friendica\Model\User; use Friendica\Model\User;
@ -1892,7 +1893,7 @@ class DFRN
notification( notification(
[ [
'type' => NOTIFY_SUGGEST, 'type' => Type::SUGGEST,
'notify_flags' => $importer['notify-flags'], 'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'], 'language' => $importer['language'],
'to_name' => $importer['username'], 'to_name' => $importer['username'],
@ -2136,7 +2137,7 @@ class DFRN
// send a notification // send a notification
notification( notification(
[ [
"type" => NOTIFY_POKE, "type" => Type::POKE,
"notify_flags" => $importer["notify-flags"], "notify_flags" => $importer["notify-flags"],
"language" => $importer["language"], "language" => $importer["language"],
"to_name" => $importer["username"], "to_name" => $importer["username"],