fef
546220fe89
fix status action bar after upstream changes
2022-12-08 09:48:55 +00:00
fef
ea10eabad6
merge catstodon/main into main
2022-12-07 13:22:33 +00:00
fef
3b511a3290
delete reaction notifications when deleting status
2022-12-07 12:47:03 +00:00
fef
e48cad81d2
support reacting with foreign custom emojis
2022-12-07 12:19:36 +00:00
Jeremy Kescher
6f338e6719
Merge remote-tracking branch 'upstream/main' into develop
2022-12-04 21:51:12 +01:00
Claire
fe523a3045
Fix unbounded recursion in account discovery ( #1994 )
...
* Fix trying to fetch posts from other users when fetching featured posts
* Rate-limit discovery of new subdomains
* Put a limit on recursively discovering new accounts
2022-12-04 21:23:19 +01:00
Jeremy Kescher
cf912c6ccb
Merge remote-tracking branch 'upstream/main' into develop
...
# Conflicts:
# Gemfile.lock
2022-12-04 20:53:50 +01:00
Claire
f4879c4481
Fix content-type being reset when editing toots ( #1993 )
...
Fixes #1990
2022-12-04 17:58:10 +01:00
Claire
3be6aff1a8
Merge branch 'main' into glitch-soc/merge-upstream
2022-12-04 17:22:57 +01:00
fef
51e441bbda
properly disable reactions when not logged in
2022-12-04 12:33:47 +00:00
fef
35cd14e810
serialize custom emoji reactions properly for AP
...
Akkoma and possibly others expect the `tag` field
in an EmojiReact activity to be an array, not just
a single object, so it's being wrapped into one
now. I'm not entirely sure whether this is the
idiomatic way of doing it tbh, but it works fine.
2022-12-04 10:52:02 +00:00
fef
be75ee47ad
also disable reaction buttons in vanilla flavour
2022-12-04 08:47:24 +00:00
Nick Schonning
05d4c50f64
Fix spacing warning from ESLint ( #22005 )
2022-12-04 10:56:21 +09:00
fef
9b2166a3f0
disable reaction button when not signed in
2022-12-03 16:55:37 +00:00
fef
fb0f9c2174
fix image for new custom emoji reactions
2022-12-03 16:20:29 +00:00
fef
b7a6243272
display external custom emoji reactions properly
...
Using an emoji map was completely unnecessary in
the first place, because the reaction list from
the API response includes URLs for every custom
emoji anyway. The reaction list now also contains
a boolean field indicating whether it is an
external custom emoji, which is required because
people should only be able to react with Unicode
emojis and local custom ones, not with custom
emojis from other servers.
2022-12-03 11:57:00 +00:00
fef
ccf4f46d7f
handle incoming custom emoji reactions properly
2022-12-03 10:22:15 +00:00
fef
8ad172535e
support Undo action for EmojiReaction
2022-12-03 08:24:23 +00:00
fef
95e198af20
download remote custom emojis from reactions
...
Emoji reactions containing custom emojis from
remote instances were assumed to already have
been downloaded and stored in the database.
This might obviously not be the case.
2022-12-02 17:02:06 +00:00
Eugen Rochko
6119668e45
New Crowdin updates ( #21599 )
...
* New translations doorkeeper.en.yml (Esperanto)
* New translations activerecord.en.yml (Spanish)
* New translations activerecord.en.yml (Esperanto)
* New translations doorkeeper.en.yml (Spanish)
* New translations devise.en.yml (Spanish)
* New translations devise.en.yml (Esperanto)
* New translations en.json (Spanish)
* New translations en.yml (Danish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations en.json (German)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Faroese)
* New translations devise.en.yml (Catalan)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.json (Catalan)
* New translations en.yml (Catalan)
* New translations en.json (Danish)
* New translations en.json (Ukrainian)
* New translations en.json (Galician)
* New translations doorkeeper.en.yml (Catalan)
* New translations simple_form.en.yml (German)
* New translations en.json (Danish)
* New translations en.yml (English, United Kingdom)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Danish)
* New translations en.yml (Japanese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Scots)
* New translations activerecord.en.yml (Scots)
* New translations en.json (Finnish)
* New translations en.json (Finnish)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations activerecord.en.yml (Asturian)
* New translations devise.en.yml (Asturian)
* New translations doorkeeper.en.yml (Asturian)
* New translations en.yml (Belarusian)
* New translations en.json (Romanian)
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations doorkeeper.en.yml (Romanian)
* New translations doorkeeper.en.yml (Galician)
* New translations activerecord.en.yml (Romanian)
* New translations en.yml (Russian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.json (Czech)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations en.json (Breton)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations simple_form.en.yml (Galician)
* New translations devise.en.yml (Italian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations devise.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.json (Serbian (Latin))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.yml (Czech)
* New translations en.json (Czech)
* New translations simple_form.en.yml (Czech)
* New translations doorkeeper.en.yml (Czech)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (English, United Kingdom)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (German)
* New translations en.json (Russian)
* New translations en.yml (Icelandic)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations simple_form.en.yml (Esperanto)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Icelandic)
* New translations en.yml (Icelandic)
* New translations simple_form.en.yml (Icelandic)
* New translations doorkeeper.en.yml (Icelandic)
* New translations en.yml (Belarusian)
* New translations activerecord.en.yml (Icelandic)
* New translations devise.en.yml (Icelandic)
* New translations en.yml (Thai)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations en.json (Ukrainian)
* New translations en.yml (Estonian)
* New translations en.json (Esperanto)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Persian)
* New translations en.yml (Belarusian)
* New translations en.json (Esperanto)
* New translations en.json (Greek)
* New translations en.json (Persian)
* New translations en.json (Scots)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.json (Finnish)
* New translations en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (German)
* New translations simple_form.en.yml (German)
* New translations en.yml (Finnish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Spanish)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Icelandic)
* New translations en.yml (German)
* New translations en.yml (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Spanish, Mexico)
* New translations activerecord.en.yml (Spanish, Mexico)
* New translations en.json (German)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.json (Korean)
* New translations en.json (Scottish Gaelic)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Thai)
* New translations en.yml (Japanese)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Italian)
* New translations en.yml (Italian)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.yml (Spanish)
* New translations en.yml (Spanish, Mexico)
* New translations en.yml (Latvian)
* New translations simple_form.en.yml (Latvian)
* New translations en.yml (Belarusian)
* New translations en.json (Serbian (Cyrillic))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* normalize
* New translations en.json (German)
* New translations en.json (Serbian (Cyrillic))
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-12-02 23:03:06 +09:00
fef
739ce56c7d
fix integer cast bug
...
Gotta love Rails.
2022-12-02 10:17:59 +00:00
fef
d79615dd27
sanitize setting for number of visible reactions
...
This is kind of a hack, but the lack of
validation for settings unfortunately makes it
necessary.
2022-12-02 09:37:56 +00:00
kibigo!
2cabc5d188
Use a tree‐based approach for advanced text formatting ( #1907 )
...
* Use a tree‐based approach for adv. text formatting
Sanitizing HTML/Markdown means parsing the content into an HTML tree
under‐the‐hood anyway, and it is more accurate to do mention/hashtag
replacement on the text nodes in that tree than it is to try to hack it
in with regexes et cetera.
This undoes the overrides of `#entities` and `#rewrite` on
`AdvancedTextFormatter` but also stops using them, instead keeping
track of the parsed Nokogiri tree itself and using that in the `#to_s`
method.
Internally, this tree uses `<mastodon-entity>` nodes to keep track of
hashtags, links, and mentions. Sanitization is moved to the beginning,
so it should be known that these do not appear in the input.
* Also disallow entities inside of `<code>`
I think this is generally expected behaviour, and people are annoyed
when their code gets turned into links/hashtags/mentions.
* Minor cleanup to AdvancedTextFormatter
* Change AdvancedTextFormatter to rewrite entities in one pass and sanitize at the end
Also, minor refactoring to better match how other formatters are organized.
* Add some tests
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2022-12-02 10:29:42 +01:00
fef
8855c53d5b
Merge commit 'e1530a66efba52020f6f0d2643c3b63947cef209'
2022-12-02 08:28:11 +00:00
Jeremy Kescher
e1530a66ef
Add reaction limit to instance serializer
2022-12-02 08:05:10 +01:00
fef
cff48e5ad1
fix padding on posts without reactions
...
The margins of the elements above and below the
main reaction list element overlapped before
reactions were added. Adding display: none to
empty reaction bars restores this exact look.
2022-12-02 02:57:19 +01:00
fef
0301bbb406
fix padding on posts without reactions
...
The margins of the elements above and below the
main reaction list element overlapped before
reactions were added. Adding display: none to
empty reaction bars restores this exact look.
2022-12-02 01:52:59 +00:00
fef
c501a17b1f
merge catstodon/main into main
2022-12-02 01:41:43 +00:00
fef
e48573570a
rename nop handler to handleNoOp
...
This also adds the comment in action_bar.js to
status_action_bar.js, clarifying that a future
version could improve this code by modifying
EmojiPickerDropdown.
2022-12-02 02:01:14 +01:00
fef
e896b802d2
rename nop handler to handleNoOp
...
This also adds the comment in action_bar.js to
status_action_bar.js, clarifying that a future
version could improve this code by modifying
EmojiPickerDropdown.
2022-12-02 01:00:08 +00:00
fef
5b024455a7
fix up merge errors
...
See 57b7968504
2022-12-01 23:35:49 +00:00
fef
57b7968504
merge nyastodon-specific changes back in
...
This was caused by an accidental rebase that i
"fixed" by force-pushing, which caused nyastodon
to be even with glitch-soc/main. oops.
2022-12-01 23:23:12 +00:00
fef
e27a610ada
cleanup JS imports and other minor stuff
2022-12-01 23:34:42 +01:00
fef
8ca3b6525d
cleanup JS imports and other minor stuff
2022-12-01 22:30:39 +00:00
fef
49b0f93cf6
remove unnecessary parameter
2022-12-01 22:37:30 +01:00
fef
059cc99934
change reaction api to match other interactions
...
Status reactions had an API similar to that of
announcement reactions, using PUT and DELETE at a
single endpoint. I believe that for statuses, it
makes more sense to follow the convention of the
other interactions and use separate POST endpoints
for create and destroy respectively.
2022-12-01 22:37:30 +01:00
fef
30362cb520
fix reaction deletion bug and clean up controller
...
Turns out the strange error where it would delete
the wrong reaction occurred because I forgot to
pass the emoji name to the query, which resulted
in the database deleting the first reaction it
found. Also, this removes the unused set_reaction
callback and includes the Authorization module for
the status reactions controller.
2022-12-01 22:37:29 +01:00
fef
a1dc767f8c
remove outdated comments
2022-12-01 22:37:29 +01:00
fef
09a85f2504
clean up new imports in vanilla flavour
2022-12-01 22:37:29 +01:00
fef
1922a5d92d
backport emoji reactions to vanilla flavour
2022-12-01 22:37:29 +01:00
fef
3f0eca5f4b
make number of visible reactions a vanilla setting
...
Reactions will be backported to the vanilla
flavour, which requires all related settings to
be accessible from the vanilla settings page
rather than the glitch specific settings modal.
2022-12-01 22:37:29 +01:00
fef
b0ae82beb2
make number of displayed reactions a setting
...
This adds an extra item to the local settings for
specifying the number of reactions shown in toots.
The detailed status view always shows all
reactions.
2022-12-01 22:37:28 +01:00
fef
7c11bd1df2
change default reaction limit to 1
2022-12-01 22:37:28 +01:00
fef
53c79b8e3a
limit number of reactions displayed
...
Too many reactions on a single post quickly get
spammy, so they are now sorted by count and only
the first MAX_REACTIONS number of different
emojis are actually displayed.
2022-12-01 22:37:28 +01:00
fef
91ca188f51
fix reaction margins and paddings
2022-12-01 22:37:28 +01:00
fef
eb1ecbd7e8
cleanup frontend emoji reaction code
2022-12-01 22:37:28 +01:00
fef
8503bdf46d
cleanup backend emoji reaction code
2022-12-01 22:37:28 +01:00
fef
58869dee10
fix padding for reaction button
2022-12-01 22:37:28 +01:00
fef
02b61f0080
handle misskey reactions properly
...
misskey federates emoji reactions as likes.
2022-12-01 22:37:27 +01:00
fef
5fe08b76dd
move react button to action bar
2022-12-01 22:37:27 +01:00