Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support for Emoji Reactions (Replaces #1980 and #2127) #2221

Closed
wants to merge 90 commits into from

Conversation

kescherCode
Copy link

Yet another attempt.

I've gone ahead and rewrote the history a little bit to remove some of the erroneous contents some commits had when they were cherry-picked from Catstodon.

Thanks @fef1312 and @neatchee for maintaining the previous iterations of this PR.

config/routes/api.rb Outdated Show resolved Hide resolved
Comment on lines 29 to 32
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank?
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't make any sense to me.
I see that this comes from announcement reactions, but there it checks for if name.present? instead.
Right now it just tries to find a custom emoji with no shortcode, when there is no name given.
Though I still have no idea what this is for.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank?
end
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(disabled: false, shortcode: name, domain: account.domain) if name.present?
end

Oh I see what this is for.
This is supposed to prevent reacting with a disabled emoji and also sets custom_emoji when a custom emoji shortcode is given, but no custom_emoji object.

Copy link
Author

@kescherCode kescherCode May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm... Once this change is applied, you can no longer react with foreign custom emoji when such a reaction already existed on the status (made by a foreign instance's user). I will revert the change for now.

Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yeah, because it looks for an emoji with the reactor's domain :/
It's something I unfortunately can't test for, but is the name passed as [email protected] to this? In that case, it also should split between name and domain.
Alternatively, account.domain could be replaced with custom_emoji.domain, though it should have a default of nil, so it doesn't throw a NoMethodError.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. In fact, I've just observed incorrect behaviour happening due to account.domain being used...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...but when removing the reaction on Mastodon, it will disappear on Akkoma as well, indicating that at least, the emoji is federated incorrectly consistently.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly that confuses the hell outta me, because an emoji, which doesn't exist, should not the attached to the payload, unless I'm missing or misunderstand something.

Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh no... This seems to be a bigger issue with the way custom emojis work.
It is always assumed the domain of a custom emoji is the domain of the account the custom emoji was first seen in...
So that leaves 3 options:
1. Prevent being able to react with foreign emojis
2. Change how custom emojis are serialised and add domain to the payload.
3. Leave it as it is

I'm for option 1.
Option 2 would require all other ActivityPub software to also change their serialisation to look for domain in the tag, otherwise they would have the same problem.
Same would go for changing content to be [email protected], which no other software would currently process.

Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oddly, even with this change, whenever I react with my "annoying_dog" emoji, and someone else on an Akkoma instance then reacts on the same reaction, a faux "[email protected]" reaction is created (that will also never be able to go away).

Which means, this is not a bug with reactions, but intended behaviour by vanilla.
Not being able to unreact is a separate issue, which affects all custom emoji reactions.

Wait, how does the Akkoma instance react with the same emoji? It should not even display on Akkoma as reactions on toots don't and shouldn't federate.
So an [email protected] is actually expected behaviour here.

Copy link

@Plastikmensch Plastikmensch May 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank?
end
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(disabled: false, shortcode: name, domain: custom_emoji.domain) if name.present? && custom_emoji.present?
end

I actually don't think it should set a custom emoji when it is nil, as I see it as violation of the spec. Also it leads to unintended behaviour. It doesn't really matter for announcement reactions which this is based on, since they don't handle remote content, but it does matter here.

Though, as established custom_emoji.domain will essentially always equal account.domain anyway.
Actually no, when using the rest API, it is actually possible that custom_emoji.domain is different from account.domain

@kescherCode kescherCode force-pushed the feature/emoji_reactions branch 2 times, most recently from 0ec7fd2 to 5d0a1a7 Compare May 11, 2023 10:42
@kescherCode kescherCode marked this pull request as draft May 11, 2023 13:24
return if original_status.nil? ||
!original_status.account.local? ||
delete_arrived_first?(@json['id']) ||
@account.reacted?(original_status, name)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it sufficient for reacted? to be called with merely a name? After all, the name does not include the domain when it's a custom emoji, as it stands currently.

Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is sufficient as name is saved as [email protected], though the content payload only contains the shortcode, so it should also check @json['tag'] for an emoji and pass [email protected] to reacted? if the tag payload also includes a custom emoji

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue is, reacted? in activity.rb does check for name as it's saved in the database... and the database never saves the domain part anywhere.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But it doesn't. My database does not contain any "emoji@domain" under the name column, only ever the shortcode.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooooh, you're right, sorry, I misunderstood the code.
Yeah, reacted? needs an optional emoji attribute.

Copy link

@Plastikmensch Plastikmensch May 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait, no, name is case sensitive and since even foreign custom emoji are always treated as coming from the reactors domain, the same account can't have two different reaction with the same name attached to a toot.

Yeah, reacted? needs an optional emoji attribute.

That would break the Undo activity though, as it doesn't contain tags.
I don't know how other software handles Undo though.

I missed how Undo works. It does contain the same payload as the activity it is undoing, so it also needs to process tags.

btw this also looks for :shortcode: in the database.

Comment on lines 29 to 32
def set_custom_emoji
self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank?
end
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...but when removing the reaction on Mastodon, it will disappear on Akkoma as well, indicating that at least, the emoji is federated incorrectly consistently.

return if status.nil? || !status.account.local?

if @account.reacted?(status, name.delete(':'))
reaction = status.status_reactions.where(account: @account, name: name).first
Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reaction is nil when name is a custom emoji shortcode, because the query looks for :shortcode: in the database, so reactions with custom emoji are never deleted.

Copy link

@Plastikmensch Plastikmensch May 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
reaction = status.status_reactions.where(account: @account, name: name).first
reaction = status.status_reactions.where(account: @account, name: name.delete(':')).first

facepalm
I typo'd this like 3 times now...

Though for performance, it should be name = name.delete(':') before this block. (or name.delete! ':')

Comment on lines 182 to 189
# Ensure all emojis declared in the activity's tags are
# present in the database and downloaded to the local cache.
# Required by EmojiReact and Like for emoji reactions.
def process_emoji_tags(tags)
as_array(tags).each do |tag|
process_single_emoji tag if tag['type'] == 'Emoji'
end
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no reason to do this.
Both Misskeys Like activity as well as the EmojiReact activity only expect a single tag object.

@github-actions
Copy link

This pull request has merge conflicts that must be resolved before it can be merged.

@Plastikmensch
Copy link

I made a PR with some fixes for the backend: CatCatNya#4

@github-actions
Copy link

This pull request has resolved merge conflicts and is ready for review.

@kescherCode
Copy link
Author

kescherCode commented May 27, 2023

@Plastikmensch the following issue is outstanding from your PR:

the signature of the process_emoji_tags method in activity.rb has changed. But in both emoji_react.rb and like.rb, their usage hasn't, meaning there is now a mismatching amount of arguments.

@kescherCode kescherCode force-pushed the feature/emoji_reactions branch from 346d54e to ab1fe56 Compare May 27, 2023 10:59
@Plastikmensch
Copy link

@Plastikmensch the following issue is outstanding from your PR:

the signature of the process_emoji_tags method in activity.rb has changed. But in both emoji_react.rb and like.rb, there usage hasn't, meaning there is now a mismatching amount of arguments.

Oops, looks like I missed that while porting changes. Sorry!
Will create a follow-up shortly.

@Plastikmensch
Copy link

Follow-up available at CatCatNya#5

@kescherCode kescherCode force-pushed the feature/emoji_reactions branch from 46b8457 to 3dc590a Compare May 27, 2023 11:33
@kescherCode
Copy link
Author

kescherCode commented May 27, 2023

Wondering if the Ruby linting failure at undo.rb should be ignored by us, or if we can even do much about it given that's where the additional functionality is needed.

@kescherCode kescherCode force-pushed the feature/emoji_reactions branch from 8de90fa to 3b3bfec Compare May 27, 2023 12:12
@kescherCode kescherCode marked this pull request as ready for review May 27, 2023 12:18
@Plastikmensch
Copy link

Wondering if the Ruby linting failure at undo.rb should be ignored by us, or if we can even do much about it given that's where the additional functionality is needed.

I think that cop is counterproductive and should be disabled.

@kescherCode kescherCode marked this pull request as draft May 27, 2023 13:19
@kescherCode
Copy link
Author

Marked as draft again as I forgot that reactions coming from e.g. Akkoma still do their weird thing

@Plastikmensch
Copy link

Marked as draft again as I forgot that reactions coming from e.g. Akkoma still do their weird thing

Can you give more info on that, including what is send in the activities?
I unfortunately don't have an Akkoma instance to test with.

@github-actions
Copy link

github-actions bot commented Jun 1, 2023

This pull request has merge conflicts that must be resolved before it can be merged.

TheEssem added a commit to TheEssem/mastodon that referenced this pull request Apr 10, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request May 21, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request May 24, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jun 30, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jul 19, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jul 25, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Aug 8, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 12, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 12, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Aug 16, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Aug 22, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 24, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Aug 25, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 28, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 28, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
arachnist pushed a commit to arachnist/mastodon that referenced this pull request Aug 28, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Aug 31, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
jordemort pushed a commit to jordemort/mastodon that referenced this pull request Sep 3, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
jordemort added a commit to jordemort/mastodon that referenced this pull request Sep 3, 2024
Squashed commit of the following:

commit 184f602
Author: Essem <[email protected]>
Date:   Thu Aug 22 12:22:36 2024 -0500

    Fix grouped reaction notification text

commit 4c03d85
Author: Essem <[email protected]>
Date:   Sun Aug 4 19:13:04 2024 -0500

    Fix reblog reactions being hydrated improperly

commit 8c49040
Author: Essem <[email protected]>
Date:   Wed Jul 24 23:10:43 2024 -0500

    Fix reactions bar alignment in grouped notifications

commit 13cd158
Author: Essem <[email protected]>
Date:   Thu Jul 18 21:01:46 2024 -0500

    Add notification grouping for reactions

commit e9b1a36
Author: Essem <[email protected]>
Date:   Tue Jun 18 14:10:37 2024 -0500

    Turn custom emoji regexps into class level constants

commit c925c67
Author: Essem <[email protected]>
Date:   Sun Jun 16 14:30:22 2024 -0500

    Disable reactions in detailed status view when visibleReactions is 0

commit 7f0cee3
Author: Jeremy Kescher <[email protected]>
Date:   Tue May 21 00:46:17 2024 +0200

    [Glitch+Emoji reactions] Use modern React context for for identity for emoji reaction code

commit 917e040
Author: Essem <[email protected]>
Date:   Sat Feb 24 17:20:38 2024 -0600

    Fix reaction picker dropdown appearance

commit 907f0cd
Author: Essem <[email protected]>
Date:   Sat Feb 24 16:22:40 2024 -0600

    Merge fixes

commit c197514
Author: Essem <[email protected]>
Date:   Fri Feb 9 17:42:19 2024 -0600

    Hydrate reactions on streaming API

commit 9f63402
Author: Essem <[email protected]>
Date:   Wed Feb 7 17:14:16 2024 -0600

    Purge status reactions on account delete

commit 2549ee8
Author: Essem <[email protected]>
Date:   Sun Jan 28 14:51:10 2024 -0600

    Fix rubocop lint issue

commit 0f0c4e7
Author: Essem <[email protected]>
Date:   Wed Jan 24 17:50:58 2024 -0600

    Refactor status reactions query

    This was done to announcement reactions in 1b0cb3b. Might as well do it here too.

commit d023a69
Author: Essem <[email protected]>
Date:   Tue Jan 23 22:59:42 2024 -0600

    Simplify reactions API controller

commit 9c73179
Author: Essem <[email protected]>
Date:   Thu Jan 18 21:38:39 2024 -0600

    Update reaction emails

    Reaction icon made by [email protected]

commit d845d31
Author: Essem <[email protected]>
Date:   Wed Jan 17 18:04:11 2024 -0600

    Revert variant selector normalization

    Probably worth tackling later, but for now it's not worth worrying about; some other implementations (e.g. Misskey's) look to have the same behavior anyways.

commit 16f0dab
Author: Essem <[email protected]>
Date:   Sun Jan 14 15:59:27 2024 -0600

    Move reaction normalization to API controller

commit 6569084
Author: Essem <[email protected]>
Date:   Sun Jan 14 15:47:55 2024 -0600

    Quick fixes

commit f46571b
Author: Essem <[email protected]>
Date:   Sat Jan 13 18:18:36 2024 -0600

    Make name of like content parser function more general

commit 05f1606
Author: Essem <[email protected]>
Date:   Sat Jan 13 18:16:57 2024 -0600

    Normalize emojis with variant selectors

commit 8f4ff90
Author: Essem <[email protected]>
Date:   Tue Dec 26 14:04:53 2023 -0600

    Check for content attribute in Misskey likes

commit 99428b4
Author: Essem <[email protected]>
Date:   Fri Dec 22 16:09:43 2023 -0600

    Fix rubocop complaint

commit fc22c99
Author: Essem <[email protected]>
Date:   Tue Dec 19 22:15:34 2023 -0600

    Add reaction notification column settings
    This was in a previous PR. Not quite sure how it didn't carry over.

commit b1014ce
Author: Essem <[email protected]>
Date:   Mon Dec 18 18:27:02 2023 -0600

    Linting fixes

commit 9f5a636
Author: Essem <[email protected]>
Date:   Sun Nov 12 20:59:36 2023 -0600

    Refactor react services

commit e346a57
Author: Essem <[email protected]>
Date:   Fri Nov 10 17:36:40 2023 -0600

    Fix reblog reactions

commit c6ee433
Author: Essem <[email protected]>
Date:   Fri Nov 10 15:16:29 2023 -0600

    Add notification emails for reactions

commit 6bcd41b
Author: Essem <[email protected]>
Date:   Tue Nov 7 18:43:47 2023 -0600

    Add support for emoji reactions
    Squashed, modified, and rebased from glitch-soc#2221.

    Co-authored-by: fef <[email protected]>
    Co-authored-by: Jeremy Kescher <[email protected]>
    Co-authored-by: neatchee <[email protected]>
    Co-authored-by: Ivan Rodriguez <[email protected]>
    Co-authored-by: Plastikmensch <[email protected]>
jordemort pushed a commit to jordemort/mastodon that referenced this pull request Sep 3, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
jordemort added a commit to jordemort/mastodon that referenced this pull request Sep 4, 2024
Squashed commit of the following:

commit 76d061e
Author: Essem <[email protected]>
Date:   Thu Aug 22 12:22:36 2024 -0500

    Fix grouped reaction notification text

commit 40c2aec
Author: Essem <[email protected]>
Date:   Sun Aug 4 19:13:04 2024 -0500

    Fix reblog reactions being hydrated improperly

commit f71caf8
Author: Essem <[email protected]>
Date:   Wed Jul 24 23:10:43 2024 -0500

    Fix reactions bar alignment in grouped notifications

commit 95ee27c
Author: Essem <[email protected]>
Date:   Thu Jul 18 21:01:46 2024 -0500

    Add notification grouping for reactions

commit 130c622
Author: Essem <[email protected]>
Date:   Tue Jun 18 14:10:37 2024 -0500

    Turn custom emoji regexps into class level constants

commit d3d7577
Author: Essem <[email protected]>
Date:   Sun Jun 16 14:30:22 2024 -0500

    Disable reactions in detailed status view when visibleReactions is 0

commit 3ca486a
Author: Jeremy Kescher <[email protected]>
Date:   Tue May 21 00:46:17 2024 +0200

    [Glitch+Emoji reactions] Use modern React context for for identity for emoji reaction code

commit 38bb56a
Author: Essem <[email protected]>
Date:   Sat Feb 24 17:20:38 2024 -0600

    Fix reaction picker dropdown appearance

commit c18a589
Author: Essem <[email protected]>
Date:   Sat Feb 24 16:22:40 2024 -0600

    Merge fixes

commit a48082c
Author: Essem <[email protected]>
Date:   Fri Feb 9 17:42:19 2024 -0600

    Hydrate reactions on streaming API

commit 8412231
Author: Essem <[email protected]>
Date:   Wed Feb 7 17:14:16 2024 -0600

    Purge status reactions on account delete

commit 63bb117
Author: Essem <[email protected]>
Date:   Sun Jan 28 14:51:10 2024 -0600

    Fix rubocop lint issue

commit 0182d05
Author: Essem <[email protected]>
Date:   Wed Jan 24 17:50:58 2024 -0600

    Refactor status reactions query

    This was done to announcement reactions in 1b0cb3b. Might as well do it here too.

commit 5fbc5c6
Author: Essem <[email protected]>
Date:   Tue Jan 23 22:59:42 2024 -0600

    Simplify reactions API controller

commit 93a243c
Author: Essem <[email protected]>
Date:   Thu Jan 18 21:38:39 2024 -0600

    Update reaction emails

    Reaction icon made by [email protected]

commit 0558d57
Author: Essem <[email protected]>
Date:   Wed Jan 17 18:04:11 2024 -0600

    Revert variant selector normalization

    Probably worth tackling later, but for now it's not worth worrying about; some other implementations (e.g. Misskey's) look to have the same behavior anyways.

commit 30f2807
Author: Essem <[email protected]>
Date:   Sun Jan 14 15:59:27 2024 -0600

    Move reaction normalization to API controller

commit 8fa9017
Author: Essem <[email protected]>
Date:   Sun Jan 14 15:47:55 2024 -0600

    Quick fixes

commit 8c0f4a0
Author: Essem <[email protected]>
Date:   Sat Jan 13 18:18:36 2024 -0600

    Make name of like content parser function more general

commit d46ca37
Author: Essem <[email protected]>
Date:   Sat Jan 13 18:16:57 2024 -0600

    Normalize emojis with variant selectors

commit cadd45d
Author: Essem <[email protected]>
Date:   Tue Dec 26 14:04:53 2023 -0600

    Check for content attribute in Misskey likes

commit 23b8343
Author: Essem <[email protected]>
Date:   Fri Dec 22 16:09:43 2023 -0600

    Fix rubocop complaint

commit 3e095da
Author: Essem <[email protected]>
Date:   Tue Dec 19 22:15:34 2023 -0600

    Add reaction notification column settings
    This was in a previous PR. Not quite sure how it didn't carry over.

commit b0f282a
Author: Essem <[email protected]>
Date:   Mon Dec 18 18:27:02 2023 -0600

    Linting fixes

commit 81a1104
Author: Essem <[email protected]>
Date:   Sun Nov 12 20:59:36 2023 -0600

    Refactor react services

commit 5c3dac4
Author: Essem <[email protected]>
Date:   Fri Nov 10 17:36:40 2023 -0600

    Fix reblog reactions

commit 4d1f5d7
Author: Essem <[email protected]>
Date:   Fri Nov 10 15:16:29 2023 -0600

    Add notification emails for reactions

commit f02e694
Author: Essem <[email protected]>
Date:   Tue Nov 7 18:43:47 2023 -0600

    Add support for emoji reactions
    Squashed, modified, and rebased from glitch-soc#2221.

    Co-authored-by: fef <[email protected]>
    Co-authored-by: Jeremy Kescher <[email protected]>
    Co-authored-by: neatchee <[email protected]>
    Co-authored-by: Ivan Rodriguez <[email protected]>
    Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Sep 13, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Sep 23, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Oct 1, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Oct 7, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Nov 25, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Dec 2, 2024
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jan 3, 2025
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jan 5, 2025
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
TheEssem added a commit to TheEssem/mastodon that referenced this pull request Jan 30, 2025
Squashed, modified, and rebased from glitch-soc#2221.

Co-authored-by: fef <[email protected]>
Co-authored-by: Jeremy Kescher <[email protected]>
Co-authored-by: neatchee <[email protected]>
Co-authored-by: Ivan Rodriguez <[email protected]>
Co-authored-by: Plastikmensch <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.