diff options
| author | 2022-08-27 05:35:31 -0400 | |
|---|---|---|
| committer | 2022-08-27 11:35:31 +0200 | |
| commit | 54f6caed659e8d7d94ad8a0a76405fd0870f297c (patch) | |
| tree | 601cc024819711c3e0b419bd99ffaa16b4e9f4ca /internal/db/bundb/account.go | |
| parent | [docs] Add user settings panel docs, other small updates (#768) (diff) | |
| download | gotosocial-54f6caed659e8d7d94ad8a0a76405fd0870f297c.tar.xz | |
[bugfix] Status visibility + `excludeReplies` fixes (#769)
* Fix some bugs when viewing a user's posts: include their self-replies (threads) even when excludeReplies is set, and use in_reply_to_uri instead of in_reply_to_id to filter out replies
* Assign values to InReplyToURI when creating statuses. Add index and update old statuses with a migration
Diffstat (limited to 'internal/db/bundb/account.go')
| -rw-r--r-- | internal/db/bundb/account.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go index 95c3d80d8..f46143401 100644 --- a/internal/db/bundb/account.go +++ b/internal/db/bundb/account.go @@ -270,7 +270,14 @@ func (a *accountDB) GetAccountStatuses(ctx context.Context, accountID string, li } if excludeReplies { - q = q.WhereGroup(" AND ", whereEmptyOrNull("in_reply_to_id")) + // include self-replies (threads) + whereGroup := func(*bun.SelectQuery) *bun.SelectQuery { + return q. + WhereOr("in_reply_to_account_id = ?", accountID). + WhereGroup(" OR ", whereEmptyOrNull("in_reply_to_uri")) + } + + q = q.WhereGroup(" AND ", whereGroup) } if excludeReblogs { @@ -332,7 +339,7 @@ func (a *accountDB) GetAccountWebStatuses(ctx context.Context, accountID string, Table("statuses"). Column("id"). Where("account_id = ?", accountID). - WhereGroup(" AND ", whereEmptyOrNull("in_reply_to_id")). + WhereGroup(" AND ", whereEmptyOrNull("in_reply_to_uri")). WhereGroup(" AND ", whereEmptyOrNull("boost_of_id")). Where("visibility = ?", gtsmodel.VisibilityPublic). Where("federated = ?", true) |
