From 0acb5d4558d3641c47f01a056751c4410b7c4953 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 28 May 2020 16:02:36 +0000 Subject: [PATCH] "parent = id" is replaced with gravity check --- include/api.php | 11 +++++++---- include/conversation.php | 2 +- mod/photos.php | 2 +- src/Protocol/DFRN.php | 2 +- src/Protocol/OStatus.php | 2 +- view/theme/frio/theme.php | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/api.php b/include/api.php index f1a8e5ee94..90d0a511b7 100644 --- a/include/api.php +++ b/include/api.php @@ -1647,7 +1647,8 @@ function api_statuses_home_timeline($type) $condition[] = $max_id; } if ($exclude_replies) { - $condition[0] .= ' AND `item`.`parent` = `item`.`id`'; + $condition[0] .= ' AND `item`.`gravity` = ?'; + $condition[] = GRAVITY_PARENT; } if ($conversation_id > 0) { $condition[0] .= " AND `item`.`parent` = ?"; @@ -2255,7 +2256,8 @@ function api_statuses_user_timeline($type) } if ($exclude_replies) { - $condition[0] .= ' AND `item`.`parent` = `item`.`id`'; + $condition[0] .= ' AND `item`.`gravity` = ?'; + $condition[] = GRAVITY_PARENT; } if ($conversation_id > 0) { @@ -3305,7 +3307,8 @@ function api_lists_statuses($type) $condition[] = $max_id; } if ($exclude_replies > 0) { - $condition[0] .= ' AND `item`.`parent` = `item`.`id`'; + $condition[0] .= ' AND `item`.`gravity` = ?'; + $condition[] = GRAVITY_PARENT; } if ($conversation_id > 0) { $condition[0] .= " AND `item`.`parent` = ?"; @@ -5199,7 +5202,7 @@ function api_in_reply_to($item) $in_reply_to['user_id_str'] = null; $in_reply_to['screen_name'] = null; - if (($item['thr-parent'] != $item['uri']) && (intval($item['parent']) != intval($item['id']))) { + if (($item['thr-parent'] != $item['uri']) && ($item['gravity'] != GRAVITY_PARENT)) { $parent = Item::selectFirst(['id'], ['uid' => $item['uid'], 'uri' => $item['thr-parent']]); if (DBA::isResult($parent)) { $in_reply_to['status_id'] = intval($parent['id']); diff --git a/include/conversation.php b/include/conversation.php index 1f597756f4..6fdfd30b46 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -823,7 +823,7 @@ function item_photo_menu($item) { $block_link = ''; $ignore_link = ''; - if (local_user() && local_user() == $item['uid'] && $item['parent'] == $item['id'] && !$item['self']) { + if (local_user() && local_user() == $item['uid'] && $item['gravity'] == GRAVITY_PARENT && !$item['self']) { $sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;'; } diff --git a/mod/photos.php b/mod/photos.php index 7b74a39dd8..7240c0052b 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1287,7 +1287,7 @@ function photos_content(App $a) } if (!empty($link_item['parent']) && !empty($link_item['uid'])) { - $condition = ["`parent` = ? AND `parent` != `id`", $link_item['parent']]; + $condition = ["`parent` = ? AND `gravity` != ?", $link_item['parent'], GRAVITY_PARENT]; $total = DBA::count('item', $condition); $pager = new Pager(DI::l10n(), DI::args()->getQueryString()); diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 54e44f5b99..10541c0e3e 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -960,7 +960,7 @@ class DFRN $dfrnowner = self::addEntryAuthor($doc, "dfrn:owner", $item["owner-link"], $item); $entry->appendChild($dfrnowner); - if (($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) { + if ($item['gravity'] != GRAVITY_PARENT) { $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); $parent = Item::selectFirst(['guid', 'plink'], ['uri' => $parent_item, 'uid' => $item['uid']]); $attributes = ["ref" => $parent_item, "type" => "text/html", diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 24decc000e..411bdd63cb 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -2020,7 +2020,7 @@ class OStatus { $mentioned = []; - if (($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) { + if ($item['gravity'] != GRAVITY_PARENT) { $parent = Item::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]); $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); diff --git a/view/theme/frio/theme.php b/view/theme/frio/theme.php index 94b29d8603..0202fda0ef 100644 --- a/view/theme/frio/theme.php +++ b/view/theme/frio/theme.php @@ -346,7 +346,7 @@ function frio_display_item(App $a, &$arr) if ( local_user() && local_user() == $arr['item']['uid'] - && $arr['item']['parent'] == $arr['item']['id'] + && $arr['item']['gravity'] == GRAVITY_PARENT && !$arr['item']['self']) { $subthread = [