Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Notify "type" and "otype" into own enum classes #8239

Merged
merged 18 commits into from Feb 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
39 changes: 26 additions & 13 deletions boot.php
Expand Up @@ -22,6 +22,7 @@
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Notify;
use Friendica\Model\Term;
use Friendica\Util\BasePath;
use Friendica\Util\DateTimeFormat;
Expand Down Expand Up @@ -140,19 +141,31 @@
* Email notification options
* @{
*/
define('NOTIFY_INTRO', 1);
nupplaphil marked this conversation as resolved.
Show resolved Hide resolved
define('NOTIFY_CONFIRM', 2);
define('NOTIFY_WALL', 4);
define('NOTIFY_COMMENT', 8);
define('NOTIFY_MAIL', 16);
define('NOTIFY_SUGGEST', 32);
define('NOTIFY_PROFILE', 64);
define('NOTIFY_TAGSELF', 128);
define('NOTIFY_TAGSHARE', 256);
define('NOTIFY_POKE', 512);
define('NOTIFY_SHARE', 1024);

define('NOTIFY_SYSTEM', 32768);
/** @deprecated since 2020.03, use Notify\Type::INTRO instead */
define('NOTIFY_INTRO', Notify\Type::INTRO);
/** @deprecated since 2020.03, use Notify\Type::CONFIRM instead */
define('NOTIFY_CONFIRM', Notify\Type::CONFIRM);
/** @deprecated since 2020.03, use Notify\Type::WALL instead */
define('NOTIFY_WALL', Notify\Type::WALL);
/** @deprecated since 2020.03, use Notify\Type::COMMENT instead */
define('NOTIFY_COMMENT', Notify\Type::COMMENT);
/** @deprecated since 2020.03, use Notify\Type::MAIL instead */
define('NOTIFY_MAIL', Notify\Type::MAIL);
/** @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);

/** @deprecated since 2020.12, use Notify\Type::SYSTEM instead */
define('NOTIFY_SYSTEM', Notify\Type::SYSTEM);
/* @}*/


Expand Down
2 changes: 1 addition & 1 deletion include/api.php
Expand Up @@ -5906,7 +5906,7 @@ function api_friendica_notification_seen($type)
$notify = DI::notify()->getByID($id);
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()]);
if (DBA::isResult($item)) {
// we found the item, return it to the user
Expand Down
69 changes: 36 additions & 33 deletions include/enotify.php
Expand Up @@ -30,6 +30,9 @@
*/
function notification($params)
{
/** @var string the common prefix of a notification subject */
$subjectPrefix = DI::l10n()->t('[Friendica:Notify]');

// Temporary logging for finding the origin
if (!isset($params['uid'])) {
Logger::notice('Missing parameters "uid".', ['params' => $params, 'callstack' => System::callstack()]);
Expand Down Expand Up @@ -102,11 +105,11 @@ function notification($params)
$hsitelink = '';
$itemlink = '';

if ($params['type'] == NOTIFY_MAIL) {
if ($params['type'] == Notify\Type::MAIL) {
$itemlink = $siteurl.'/message/'.$params['item']['id'];
$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);
$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]');
Expand All @@ -116,7 +119,7 @@ function notification($params)
$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]);
if (DBA::isResult($thread) && $thread['ignored']) {
Logger::log('Thread ' . $parent_id . ' will be ignored', Logger::DEBUG);
Expand All @@ -126,15 +129,15 @@ function notification($params)
// Check to see if there was already a tag notify or comment notify for this post.
// If so don't create a second notification
/// @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']];
if (DBA::exists('notify', $condition)) {
return false;
}

// if it's a post figure out who's post it is.
$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]);
}

Expand Down Expand Up @@ -195,11 +198,11 @@ function notification($params)
// Before this we have the name of the replier on the subject rendering
// different subjects for messages on the same thread.
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);
} 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']);
}
Expand All @@ -212,8 +215,8 @@ function notification($params)
$itemlink = $params['link'];
}

if ($params['type'] == NOTIFY_WALL) {
$subject = $l10n->t('[Friendica:Notify] %s posted to your profile wall', $params['source_name']);
if ($params['type'] == Notify\Type::WALL) {
$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);
$epreamble = $l10n->t('%1$s posted to [url=%2$s]your wall[/url]',
Expand All @@ -227,8 +230,8 @@ function notification($params)
$itemlink = $params['link'];
}

if ($params['type'] == NOTIFY_SHARE) {
$subject = $l10n->t('[Friendica:Notify] %s shared a new post', $params['source_name']);
nupplaphil marked this conversation as resolved.
Show resolved Hide resolved
if ($params['type'] == Notify\Type::SHARE) {
$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);
$epreamble = $l10n->t('%1$s [url=%2$s]shared a post[/url].',
Expand All @@ -242,8 +245,8 @@ function notification($params)
$itemlink = $params['link'];
}

if ($params['type'] == NOTIFY_POKE) {
$subject = $l10n->t('[Friendica:Notify] %1$s poked you', $params['source_name']);
if ($params['type'] == Notify\Type::POKE) {
$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);
$epreamble = $l10n->t('%1$s [url=%2$s]poked you[/url].',
Expand All @@ -261,9 +264,9 @@ function notification($params)
$itemlink = $params['link'];
}

if ($params['type'] == NOTIFY_TAGSHARE) {
if ($params['type'] == Notify\Type::TAG_SHARE) {
$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);
$epreamble = $l10n->t('%1$s tagged [url=%2$s]your post[/url]',
Expand All @@ -276,9 +279,9 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
}

if ($params['type'] == NOTIFY_INTRO) {
if ($params['type'] == Notify\Type::INTRO) {
$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);
$epreamble = $l10n->t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.',
Expand All @@ -295,7 +298,7 @@ function notification($params)
switch ($params['verb']) {
case Activity::FRIEND:
// 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);
$epreamble = $l10n->t('%1$s is sharing with you at %2$s',
Expand All @@ -305,7 +308,7 @@ function notification($params)
break;
case Activity::FOLLOW:
// 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);
$epreamble = $l10n->t('You have a new follower at %2$s : %1$s',
Expand All @@ -319,9 +322,9 @@ function notification($params)
}
}

if ($params['type'] == NOTIFY_SUGGEST) {
if ($params['type'] == Notify\Type::SUGGEST) {
$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);
$epreamble = $l10n->t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.',
Expand All @@ -339,10 +342,10 @@ function notification($params)
$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
$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);
$epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].',
Expand All @@ -357,7 +360,7 @@ function notification($params)
$hsitelink = sprintf($sitelink, '<a href="'.$siteurl.'">'.$sitename.'</a>');
} else { // ACTIVITY_FOLLOW
$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);
$epreamble = $l10n->t('%2$s has accepted your [url=%1$s]connection request[/url].',
Expand All @@ -375,7 +378,7 @@ function notification($params)
}
}

if ($params['type'] == NOTIFY_SYSTEM) {
if ($params['type'] == Notify\Type::SYSTEM) {
switch($params['event']) {
case "SYSTEM_REGISTER_REQUEST":
$itemlink = $params['link'];
Expand Down Expand Up @@ -456,7 +459,7 @@ function notification($params)

// send email notification if notification preferences permit
if ((intval($params['notify_flags']) & intval($params['type']))
|| $params['type'] == NOTIFY_SYSTEM) {
|| $params['type'] == Notify\Type::SYSTEM) {

Logger::log('sending notification email');

Expand Down Expand Up @@ -589,25 +592,25 @@ function check_item_notification($itemid, $uid, $notification_type) {
}

if ($notification_type & UserItem::NOTIF_SHARED) {
$params['type'] = NOTIFY_SHARE;
$params['type'] = Notify\Type::SHARE;
$params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_EXPLICIT_TAGGED) {
$params['type'] = NOTIFY_TAGSELF;
$params['type'] = Notify\Type::TAG_SELF;
$params['verb'] = Activity::TAG;
} elseif ($notification_type & UserItem::NOTIF_IMPLICIT_TAGGED) {
$params['type'] = NOTIFY_COMMENT;
$params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_THREAD_COMMENT) {
$params['type'] = NOTIFY_COMMENT;
$params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_DIRECT_COMMENT) {
$params['type'] = NOTIFY_COMMENT;
$params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION) {
$params['type'] = NOTIFY_COMMENT;
$params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST;
} elseif ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION) {
$params['type'] = NOTIFY_COMMENT;
$params['type'] = Notify\Type::COMMENT;
$params['verb'] = Activity::POST;
} else {
return false;
Expand Down
5 changes: 3 additions & 2 deletions mod/dfrn_confirm.php
Expand Up @@ -26,6 +26,7 @@
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\Notify\Type;
use Friendica\Model\User;
use Friendica\Protocol\Activity;
use Friendica\Util\Crypto;
Expand Down Expand Up @@ -525,10 +526,10 @@ function dfrn_confirm_post(App $a, $handsfree = null)
if (DBA::isResult($r)) {
$combined = $r[0];

if ($combined['notify-flags'] & NOTIFY_CONFIRM) {
if ($combined['notify-flags'] & Type::CONFIRM) {
$mutual = ($new_relation == Contact::FRIEND);
notification([
'type' => NOTIFY_CONFIRM,
'type' => Type::CONFIRM,
'notify_flags' => $combined['notify-flags'],
'language' => $combined['language'],
'to_name' => $combined['username'],
Expand Down
3 changes: 2 additions & 1 deletion mod/dfrn_request.php
Expand Up @@ -23,6 +23,7 @@
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\Notify\Type;
use Friendica\Model\Profile;
use Friendica\Model\User;
use Friendica\Module\Security\Login;
Expand Down Expand Up @@ -552,7 +553,7 @@ function dfrn_request_content(App $a)

if (!$auto_confirm) {
notification([
'type' => NOTIFY_INTRO,
'type' => Type::INTRO,
'notify_flags' => $r[0]['notify-flags'],
'language' => $r[0]['language'],
'to_name' => $r[0]['username'],
Expand Down
5 changes: 3 additions & 2 deletions mod/item.php
Expand Up @@ -31,6 +31,7 @@
use Friendica\Model\Conversation;
use Friendica\Model\FileTag;
use Friendica\Model\Item;
use Friendica\Model\Notify\Type;
use Friendica\Model\Photo;
use Friendica\Model\Term;
use Friendica\Network\HTTPException;
Expand Down Expand Up @@ -751,7 +752,7 @@ function item_post(App $a) {
if ($toplevel_item_id) {
if ($contact_record != $author) {
notification([
'type' => NOTIFY_COMMENT,
'type' => Type::COMMENT,
'notify_flags' => $user['notify-flags'],
'language' => $user['language'],
'to_name' => $user['username'],
Expand All @@ -771,7 +772,7 @@ function item_post(App $a) {
} else {
if (($contact_record != $author) && !count($forum_contact)) {
notification([
'type' => NOTIFY_WALL,
'type' => Type::WALL,
'notify_flags' => $user['notify-flags'],
'language' => $user['language'],
'to_name' => $user['username'],
Expand Down
5 changes: 3 additions & 2 deletions mod/message.php
Expand Up @@ -13,6 +13,7 @@
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Mail;
use Friendica\Model\Notify\Type;
use Friendica\Module\Security\Login;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Proxy as ProxyUtils;
Expand Down Expand Up @@ -338,10 +339,10 @@ function message_content(App $a)

if ($message['convid']) {
// 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
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 {
$messages = false;
}
Expand Down
5 changes: 3 additions & 2 deletions mod/ping.php
Expand Up @@ -13,6 +13,7 @@
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\Item;
use Friendica\Model\Notify\Type;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal;
use Friendica\Util\Proxy as ProxyUtils;
Expand Down Expand Up @@ -403,8 +404,8 @@ function ping_get_notifications($uid)
AND NOT (`notify`.`type` IN (%d, %d))
AND $seensql `notify`.`seen` ORDER BY `notify`.`date` $order LIMIT %d, 50",
intval($uid),
intval(NOTIFY_INTRO),
intval(NOTIFY_MAIL),
intval(Type::INTRO),
intval(Type::MAIL),
intval($offset)
);

Expand Down