mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 04:22:24 -05:00
[bugfix] Update interaction policies of freshly dereffed statuses if different from last deref (#4474)
# Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request adds a check to see whether interaction policy on a refreshed status is different from the interaction policy set on that status before, and updates the status with the new policy if it's changed. Should fix a pesky issue where folks on v0.19.2 and above still can't interact with statuses they dereferenced before updating. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4474 Reviewed-by: kim <gruf@noreply.codeberg.org> Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
This commit is contained in:
parent
57cb4fe748
commit
259fa1ffac
2 changed files with 87 additions and 0 deletions
|
|
@ -608,6 +608,9 @@ func (d *Dereferencer) enrichStatus(
|
|||
return nil, nil, gtserror.Newf("error populating emojis for status %s: %w", uri, err)
|
||||
}
|
||||
|
||||
// Check if interaction policy has changed between status and latestStatus.
|
||||
interactionPolicyChanged := status.InteractionPolicy.DifferentFrom(latestStatus.InteractionPolicy)
|
||||
|
||||
if isNew {
|
||||
// Simplest case, insert this new remote status into the database.
|
||||
if err := d.state.DB.PutStatus(ctx, latestStatus); err != nil {
|
||||
|
|
@ -625,6 +628,7 @@ func (d *Dereferencer) enrichStatus(
|
|||
tagsChanged,
|
||||
mediaChanged,
|
||||
emojiChanged,
|
||||
interactionPolicyChanged,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, nil, gtserror.Newf("error handling edit for status %s: %w", uri, err)
|
||||
|
|
@ -1057,6 +1061,7 @@ func (d *Dereferencer) handleStatusEdit(
|
|||
tagsChanged bool,
|
||||
mediaChanged bool,
|
||||
emojiChanged bool,
|
||||
interactionPolicyChanged bool,
|
||||
) (
|
||||
cols []string,
|
||||
err error,
|
||||
|
|
@ -1141,6 +1146,15 @@ func (d *Dereferencer) handleStatusEdit(
|
|||
// been previously populated properly.
|
||||
}
|
||||
|
||||
if interactionPolicyChanged {
|
||||
// Interaction policy changed.
|
||||
cols = append(cols, "interaction_policy")
|
||||
|
||||
// Int pol changed doesn't necessarily
|
||||
// indicate an edit, it may just not have
|
||||
// been previously populated properly.
|
||||
}
|
||||
|
||||
if edited {
|
||||
// Get previous-most-recent modified time,
|
||||
// which will be this edit's creation time.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue