Merge pull request #10764 from MrPetovan/bug/notices

Return early when parent-related record isn't found
This commit is contained in:
Michael Vogel 2021-09-26 14:22:05 +02:00 committed by GitHub
commit 92114dbe33
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 34 deletions

View file

@ -74,9 +74,7 @@ class Mail
return false;
}
if ($msg['reply']) {
$reply = DBA::selectFirst('mail', ['uri', 'uri-id'], ['parent-uri' => $msg['parent-uri'], 'reply' => false]);
if ($msg['reply'] && DBA::isResult($reply = DBA::selectFirst('mail', ['uri', 'uri-id'], ['parent-uri' => $msg['parent-uri'], 'reply' => false]))) {
$msg['thr-parent'] = $reply['uri'];
$msg['thr-parent-id'] = $reply['uri-id'];
} else {

View file

@ -1146,27 +1146,31 @@ class Feed
if ($item['gravity'] != GRAVITY_PARENT) {
$parent = Post::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner['uid'], 'uri' => $item['thr-parent']]);
if (DBA::isResult($thrparent)) {
$mentioned[$thrparent["author-link"]] = $thrparent["author-link"];
$mentioned[$thrparent["owner-link"]] = $thrparent["owner-link"];
$parent_plink = $thrparent["plink"];
$mentioned[$thrparent['author-link']] = $thrparent['author-link'];
$mentioned[$thrparent['owner-link']] = $thrparent['owner-link'];
$parent_plink = $thrparent['plink'];
} elseif (DBA::isResult($parent)) {
$mentioned[$parent['author-link']] = $parent['author-link'];
$mentioned[$parent['owner-link']] = $parent['owner-link'];
$parent_plink = DI::baseUrl() . '/display/' . $parent['guid'];
} else {
$mentioned[$parent["author-link"]] = $parent["author-link"];
$mentioned[$parent["owner-link"]] = $parent["owner-link"];
$parent_plink = DI::baseUrl()."/display/".$parent["guid"];
DI::logger()->notice('Missing parent and thr-parent for child item', ['item' => $item]);
}
if (isset($parent_plink)) {
$attributes = [
"ref" => $item['thr-parent'],
"href" => $parent_plink];
XML::addElement($doc, $entry, "thr:in-reply-to", "", $attributes);
'ref' => $item['thr-parent'],
'href' => $parent_plink];
XML::addElement($doc, $entry, 'thr:in-reply-to', '', $attributes);
$attributes = [
"rel" => "related",
"href" => $parent_plink];
XML::addElement($doc, $entry, "link", "", $attributes);
'rel' => 'related',
'href' => $parent_plink];
XML::addElement($doc, $entry, 'link', '', $attributes);
}
}
// uri-id isn't present for follow entry pseudo-items
@ -1177,7 +1181,7 @@ class Feed
foreach ($tags as $tag) {
if ($tag['type'] == Tag::HASHTAG) {
XML::addElement($doc, $entry, "category", "", ["term" => $tag['name']]);
XML::addElement($doc, $entry, 'category', '', ['term' => $tag['name']]);
}
}

View file

@ -1931,27 +1931,31 @@ class OStatus
if ($item['gravity'] != GRAVITY_PARENT) {
$parent = Post::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner['uid'], 'uri' => $item['thr-parent']]);
if (DBA::isResult($thrparent)) {
$mentioned[$thrparent["author-link"]] = $thrparent["author-link"];
$mentioned[$thrparent["owner-link"]] = $thrparent["owner-link"];
$parent_plink = $thrparent["plink"];
$mentioned[$thrparent['author-link']] = $thrparent['author-link'];
$mentioned[$thrparent['owner-link']] = $thrparent['owner-link'];
$parent_plink = $thrparent['plink'];
} elseif (DBA::isResult($parent)) {
$mentioned[$parent['author-link']] = $parent['author-link'];
$mentioned[$parent['owner-link']] = $parent['owner-link'];
$parent_plink = DI::baseUrl() . '/display/' . $parent['guid'];
} else {
$mentioned[$parent["author-link"]] = $parent["author-link"];
$mentioned[$parent["owner-link"]] = $parent["owner-link"];
$parent_plink = DI::baseUrl()."/display/".$parent["guid"];
DI::logger()->notice('Missing parent and thr-parent for child item', ['item' => $item]);
}
if (isset($parent_plink)) {
$attributes = [
"ref" => $item['thr-parent'],
"href" => $parent_plink];
XML::addElement($doc, $entry, "thr:in-reply-to", "", $attributes);
'ref' => $item['thr-parent'],
'href' => $parent_plink];
XML::addElement($doc, $entry, 'thr:in-reply-to', '', $attributes);
$attributes = [
"rel" => "related",
"href" => $parent_plink];
XML::addElement($doc, $entry, "link", "", $attributes);
'rel' => 'related',
'href' => $parent_plink];
XML::addElement($doc, $entry, 'link', '', $attributes);
}
}
if (intval($item['parent']) > 0) {