Fix implicit mentions in outgoing ActivityPub posts
- Add usage of system.disable_implicit_mentions to disable implicit mention behavior - Add usage of item own implicit mentions to be prepended to the outgoing body
This commit is contained in:
parent
3ac8576c8e
commit
cb78e77850
1 changed files with 8 additions and 4 deletions
|
@ -343,7 +343,7 @@ class Transmitter
|
||||||
$actor_profile = APContact::getByURL($item['author-link']);
|
$actor_profile = APContact::getByURL($item['author-link']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$terms = Term::tagArrayFromItemId($item['id'], TERM_MENTION);
|
$terms = Term::tagArrayFromItemId($item['id'], [Term::MENTION, Term::IMPLICIT_MENTION]);
|
||||||
|
|
||||||
if (!$item['private']) {
|
if (!$item['private']) {
|
||||||
$data = array_merge($data, self::fetchPermissionBlockFromConversation($item));
|
$data = array_merge($data, self::fetchPermissionBlockFromConversation($item));
|
||||||
|
@ -807,12 +807,12 @@ class Transmitter
|
||||||
{
|
{
|
||||||
$tags = [];
|
$tags = [];
|
||||||
|
|
||||||
$terms = Term::tagArrayFromItemId($item['id']);
|
$terms = Term::tagArrayFromItemId($item['id'], [Term::HASHTAG, Term::MENTION, Term::IMPLICIT_MENTION]);
|
||||||
foreach ($terms as $term) {
|
foreach ($terms as $term) {
|
||||||
if ($term['type'] == TERM_HASHTAG) {
|
if ($term['type'] == Term::HASHTAG) {
|
||||||
$url = System::baseUrl() . '/search?tag=' . urlencode($term['term']);
|
$url = System::baseUrl() . '/search?tag=' . urlencode($term['term']);
|
||||||
$tags[] = ['type' => 'Hashtag', 'href' => $url, 'name' => '#' . $term['term']];
|
$tags[] = ['type' => 'Hashtag', 'href' => $url, 'name' => '#' . $term['term']];
|
||||||
} elseif ($term['type'] == TERM_MENTION) {
|
} elseif ($term['type'] == Term::MENTION || $term['type'] == Term::IMPLICIT_MENTION) {
|
||||||
$contact = Contact::getDetailsByURL($term['url']);
|
$contact = Contact::getDetailsByURL($term['url']);
|
||||||
if (!empty($contact['addr'])) {
|
if (!empty($contact['addr'])) {
|
||||||
$mention = '@' . $contact['addr'];
|
$mention = '@' . $contact['addr'];
|
||||||
|
@ -1439,6 +1439,10 @@ class Transmitter
|
||||||
|
|
||||||
private static function prependMentions($body, array $permission_block)
|
private static function prependMentions($body, array $permission_block)
|
||||||
{
|
{
|
||||||
|
if (Config::get('system', 'disable_implicit_mentions')) {
|
||||||
|
return $body;
|
||||||
|
}
|
||||||
|
|
||||||
$mentions = [];
|
$mentions = [];
|
||||||
|
|
||||||
foreach ($permission_block['to'] as $profile_url) {
|
foreach ($permission_block['to'] as $profile_url) {
|
||||||
|
|
Loading…
Reference in a new issue