Fix Diaspora outgoing implicit mention
- Use name instead of nick for implicit mention - Rename $parent to $toplevel_item in Diaspora::constructComment - Use thread parent to retrieve the expected mention instead of the top level item
This commit is contained in:
parent
e51f2cea0d
commit
fc47a07801
1 changed files with 23 additions and 13 deletions
|
@ -3675,7 +3675,7 @@ class Diaspora
|
|||
&& !strstr($body, $profile['addr'])
|
||||
&& !strstr($body, $profile_url)
|
||||
) {
|
||||
$body = '@[url=' . $profile_url . ']' . $profile['nick'] . '[/url] ' . $body;
|
||||
$body = '@[url=' . $profile_url . ']' . $profile['name'] . '[/url] ' . $body;
|
||||
}
|
||||
|
||||
return $body;
|
||||
|
@ -3776,7 +3776,7 @@ class Diaspora
|
|||
* @param array $item The item that will be exported
|
||||
* @param array $owner the array of the item owner
|
||||
*
|
||||
* @return array The data for a comment
|
||||
* @return array|false The data for a comment
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*/
|
||||
private static function constructComment(array $item, array $owner)
|
||||
|
@ -3788,30 +3788,40 @@ class Diaspora
|
|||
return $result;
|
||||
}
|
||||
|
||||
$parent = Item::selectFirst(['guid', 'author-link'], ['id' => $item["parent"], 'parent' => $item["parent"]]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
$toplevel_item = Item::selectFirst(['guid', 'author-link'], ['id' => $item["parent"], 'parent' => $item["parent"]]);
|
||||
if (!DBA::isResult($toplevel_item)) {
|
||||
Logger::error('Missing parent conversation item', ['parent' => $item["parent"]]);
|
||||
return false;
|
||||
}
|
||||
|
||||
$thread_parent_item = $toplevel_item;
|
||||
if ($item['thr-parent'] != $item['parent-uri']) {
|
||||
$thread_parent_item = Item::selectFirst(['guid', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
|
||||
}
|
||||
|
||||
$body = $item["body"];
|
||||
|
||||
if (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions')) {
|
||||
$body = self::prependParentAuthorMention($body, $parent['author-link']);
|
||||
if ((empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions'))
|
||||
&& !Config::get('system', 'disable_implicit_mentions')
|
||||
) {
|
||||
$body = self::prependParentAuthorMention($body, $thread_parent_item['author-link']);
|
||||
}
|
||||
|
||||
$text = html_entity_decode(BBCode::toMarkdown($body));
|
||||
$created = DateTimeFormat::utc($item["created"], DateTimeFormat::ATOM);
|
||||
|
||||
$comment = ["author" => self::myHandle($owner),
|
||||
"guid" => $item["guid"],
|
||||
"created_at" => $created,
|
||||
"parent_guid" => $parent["guid"],
|
||||
"text" => $text,
|
||||
"author_signature" => ""];
|
||||
$comment = [
|
||||
"author" => self::myHandle($owner),
|
||||
"guid" => $item["guid"],
|
||||
"created_at" => $created,
|
||||
"parent_guid" => $toplevel_item["guid"],
|
||||
"text" => $text,
|
||||
"author_signature" => ""
|
||||
];
|
||||
|
||||
// Send the thread parent guid only if it is a threaded comment
|
||||
if ($item['thr-parent'] != $item['parent-uri']) {
|
||||
$comment['thread_parent_guid'] = self::getGuidFromUri($item['thr-parent'], $item['uid']);
|
||||
$comment['thread_parent_guid'] = $thread_parent_item['guid'];
|
||||
}
|
||||
|
||||
Cache::set($cachekey, $comment, Cache::QUARTER_HOUR);
|
||||
|
|
Loading…
Reference in a new issue