[UTIL][Formatting] Mention prefix was hardcoded, fixed.

This commit is contained in:
Diogo Peralta Cordeiro 2022-01-18 13:01:31 +00:00 committed by Hugo Sales
parent b253ce5e70
commit 23d45ffab7
Signed by: someonewithpc
GPG Key ID: 7D0C7EAFC9D835A0
2 changed files with 6 additions and 8 deletions

View File

@ -29,7 +29,6 @@ use App\Core\Entity;
use App\Core\Event; use App\Core\Event;
use App\Core\Router\Router; use App\Core\Router\Router;
use App\Util\Exception\BugFoundException; use App\Util\Exception\BugFoundException;
use App\Util\Exception\DuplicateFoundException;
use App\Util\Exception\NicknameException; use App\Util\Exception\NicknameException;
use App\Util\Exception\NotFoundException; use App\Util\Exception\NotFoundException;
use App\Util\Formatting; use App\Util\Formatting;
@ -38,7 +37,6 @@ use Component\Avatar\Avatar;
use Component\Language\Entity\ActorLanguage; use Component\Language\Entity\ActorLanguage;
use Component\Language\Entity\Language; use Component\Language\Entity\Language;
use Component\Subscription\Entity\ActorSubscription; use Component\Subscription\Entity\ActorSubscription;
use DateTimeInterface;
use Functional as F; use Functional as F;
/** /**
@ -352,7 +350,7 @@ class Actor extends Entity
{ {
return DB::dql(<<<EOF return DB::dql(<<<EOF
SELECT a FROM actor AS a SELECT a FROM actor AS a
INNER JOIN subscription AS s INNER JOIN actor_subscription AS s
WITH a.id = s.subscribed_id WITH a.id = s.subscribed_id
WHERE s.subscriber_id = :self AND a.id != :self WHERE s.subscriber_id = :self AND a.id != :self
EOF, ['self' => $this->getId()]); EOF, ['self' => $this->getId()]);
@ -362,7 +360,7 @@ class Actor extends Entity
{ {
return DB::dql(<<<EOF return DB::dql(<<<EOF
SELECT a FROM actor AS a SELECT a FROM actor AS a
INNER JOIN subscription AS s INNER JOIN actor_subscription AS s
WITH a.id = s.subscriber_id WITH a.id = s.subscriber_id
WHERE s.subscribed_id = :self AND a.id != :self WHERE s.subscribed_id = :self AND a.id != :self
EOF, ['self' => $this->getId()]); EOF, ['self' => $this->getId()]);
@ -405,8 +403,8 @@ class Actor extends Entity
fn () => DB::dql( fn () => DB::dql(
<<<'EOF' <<<'EOF'
SELECT a FROM actor AS a WHERE SELECT a FROM actor AS a WHERE
a.id IN (SELECT sa.subscribed_id FROM subscription sa JOIN actor aa WITH sa.subscribed_id = aa.id WHERE sa.subscriber_id = :actor_id AND aa.nickname = :nickname) OR a.id IN (SELECT sa.subscribed_id FROM actor_subscription sa JOIN actor aa WITH sa.subscribed_id = aa.id WHERE sa.subscriber_id = :actor_id AND aa.nickname = :nickname) OR
a.id IN (SELECT sb.subscriber_id FROM subscription sb JOIN actor ab WITH sb.subscriber_id = ab.id WHERE sb.subscribed_id = :actor_id AND ab.nickname = :nickname) OR a.id IN (SELECT sb.subscriber_id FROM actor_subscription sb JOIN actor ab WITH sb.subscriber_id = ab.id WHERE sb.subscribed_id = :actor_id AND ab.nickname = :nickname) OR
a.nickname = :nickname a.nickname = :nickname
EOF, EOF,
['nickname' => $nickname, 'actor_id' => $this->getId()], ['nickname' => $nickname, 'actor_id' => $this->getId()],

View File

@ -450,7 +450,7 @@ abstract class Formatting
foreach ($points as $position => $mention) { foreach ($points as $position => $mention) {
$linkText = self::linkifyMentionArray($mention); $linkText = self::linkifyMentionArray($mention);
$text = substr_replace($text, $linkText, $position - 1, $mention['length'] + 1); $text = substr_replace($text, $linkText, $position, $mention['length']);
} }
return [$text, $mentions]; return [$text, $mentions];
@ -471,7 +471,7 @@ abstract class Formatting
} }
$output = HTML::html(['span' => ['attrs' => ['class' => 'h-card'], $output = HTML::html(['span' => ['attrs' => ['class' => 'h-card'],
'@' . HTML::html(['a' => ['attrs' => $attrs, $mention['title'] ?? $mention['text']]], options: ['indent' => false]), HTML::html(['a' => ['attrs' => $attrs, $mention['title'] ?? $mention['text']]], options: ['indent' => false]),
]], options: ['indent' => false, 'raw' => true]); ]], options: ['indent' => false, 'raw' => true]);
Event::handle('EndLinkifyMention', [$mention, &$output]); Event::handle('EndLinkifyMention', [$mention, &$output]);