Commit graph

16748 commits

Author SHA1 Message Date
fef
57e46f4aaf
merge catstodon/main into main 2022-11-30 16:35:05 +00:00
fef
4489c51bb9
bump to nyastodon 1.1.4 2022-11-30 16:30:42 +00:00
fef
1ab64b9f2a
backport emoji reactions to vanilla flavour 2022-11-30 16:25:36 +00:00
fef
4571ee9da6
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-11-30 14:59:37 +00:00
fef
96cd869dad
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-11-30 13:20:20 +00:00
fef
273ba5a060
change default reaction limit to 1 2022-11-30 12:01:34 +00:00
fef
b780c63420
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-11-30 09:06:14 +00:00
fef
df19e54334
fix reaction margins and paddings 2022-11-29 09:07:10 +00:00
fef
80a2f84334
cleanup frontend emoji reaction code 2022-11-29 08:54:35 +00:00
fef
9b0f46f808
cleanup backend emoji reaction code 2022-11-29 08:15:52 +00:00
fef
67e379059c
make homogay body background a little lighter 2022-11-29 06:42:45 +00:00
fef
42f34cfb81
fix padding for reaction button 2022-11-29 06:25:43 +00:00
fef
ddeda89821
bump to nyastodon 1.1.3 2022-11-29 05:38:15 +00:00
fef
f33b10fe0d
handle misskey reactions properly
misskey federates emoji reactions as likes.
2022-11-29 05:21:53 +00:00
fef
4e041d1e00
bump to nyastodon 1.1.2 2022-11-29 04:38:41 +00:00
fef
96471c9398
move react button to action bar 2022-11-29 04:37:44 +00:00
fef
7f157c35cf
bump to nyastodon 1.1.1 2022-11-29 03:32:54 +00:00
fef
6d86e8a3be
add a little extra movement to fav animation 2022-11-29 03:32:09 +00:00
fef
d6e3a9f17f
send reaction notifications 2022-11-29 03:31:22 +00:00
fef
cfa4824492
make frontend fetch reaction limit
the maximum number of reactions was previously
hardcoded to 8.  this commit also fixes an
incorrect query in StatusReactionValidator where
it didn't count per-user reactions but the total
amount of different ones.
2022-11-29 00:39:40 +00:00
fef
c7129ef7e7
make status reaction count limit configurable 2022-11-28 23:16:56 +00:00
Jeremy Kescher
730a09f642
v4.0.2+1.0.6 2022-11-29 00:15:08 +01:00
fef
0157438894
merge catcatnya/main into main 2022-11-28 22:47:46 +00:00
fef
1a84936322
bump to nyastodon 1.1.0 2022-11-28 22:47:32 +00:00
fef
9c7db58e30
remove accidentally created file 2022-11-28 22:25:12 +00:00
fef
32d689a00e
federate emoji reactions
this is kind of experimental, but it should work
in theory.  at least i tested it with a remove
akkoma instance and it didn't crash.
2022-11-28 22:23:13 +00:00
Claire
1a7aa37b60
Merge pull request #1976 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
2022-11-28 14:17:00 +01:00
Connor Shea
f51990bd62 [Glitch] Make the 'Trending now' header a link to Explore.
Port cec1e902e0 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-28 11:59:00 +01:00
Claire
98c5ca1037 [Glitch] Fix infinite loading instead of soft 404 for non-existing remote accounts
Port 3ffaa966b0 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-28 11:55:56 +01:00
James Adney
2815ac4155 [Glitch] fix gif autoplay on iOS
Port c0dcf15d1e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-28 11:55:09 +01:00
Claire
c0bf90ac19 [Glitch] Fix “Share @{name}'s profile” profile menu item
Port fe421257e5 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-28 11:54:00 +01:00
kedama
32b43a96a7 [Glitch] Fix status mismatch of sensitive check
Port 14e2354eea to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-28 11:53:21 +01:00
Claire
a2e7997592 Merge branch 'main' into glitch-soc/merge-upstream
Conflicts:
- `README.md`:
  Our README is completely different.
  Discarded upstream changes.
2022-11-28 11:33:34 +01:00
Connor Shea
cec1e902e0
Make the 'Trending now' header a link to Explore. (#21759)
This keeps the same design that exists currently, but makes "Trending
now" into a link to the Hashtags section of "Explore".

Resolves #21758.
2022-11-27 23:49:32 +01:00
Claire
3ffaa966b0
Fix infinite loading instead of soft 404 for non-existing remote accounts (#21303)
Fixes #21278, #21021
2022-11-27 20:48:12 +01:00
Claire
57b893d505
Fix spaces not being stripped in admin account search (#21324)
Fixes #21058

Regression from #18641
2022-11-27 20:47:29 +01:00
James Adney
c0dcf15d1e
fix gif autoplay on iOS (#21422) 2022-11-27 20:46:23 +01:00
Bramus!
e617ee7fd9
Add user profile OG tag on status page (#21423) 2022-11-27 20:45:28 +01:00
Claire
f4f2b062ec
Remove LDSignature on actor Delete activities (#21466)
They are currently not used for anything and represent more than half of the
payload size.
2022-11-27 20:43:24 +01:00
Claire
fe421257e5
Fix “Share @{name}'s profile” profile menu item (#21490) 2022-11-27 20:42:17 +01:00
Claire
098ced7420
Remove support for Ruby 2.6 (#21477)
As pointed out by https://github.com/mastodon/mastodon/pull/21297#discussion_r1028372193
at least one of our dependencies already dropped support for Ruby 2.6, and we
had removed Ruby 2.6 tests from the CI over a year ago (#16861).

So stop advertising Ruby 2.6 support, bump targeted version, and drop some
compatibility code.
2022-11-27 20:41:39 +01:00
Kaspar V
47f0d7021e
refactor(vacuum statuses): reduce amount of db queries and load for each query - improve performance (#21487)
* refactor(statuses_vacuum): remove dead code - unused

Method is not called inside class and private.
Clean up dead code.

* refactor(statuses_vacuum): make retention_period present test explicit

This private method only hides functionality.
It is best practice to be as explicit as possible.

* refactor(statuses_vacuum): improve query performance

- fix statuses_scope having sub-select for Account.remote scope by
  `joins(:account).merge(Account.remote)`
- fix statuses_scope unnecessary use of `Status.arel_table[:id].lt`
  because it is inexplicit, bad practice and even slower than normal
  `.where('statuses.id < ?'`
- fix statuses_scope remove select(:id, :visibility) for having reusable
  active record query batches (no re queries)
- fix vacuum_statuses! to use in_batches instead of find_in_batches,
  because in_batches delivers a full blown active record query result,
  in stead of an array - no requeries necessary
- send(:unlink_from_conversations) not to perform another db query, but
  reuse the in_batches result instead.
- remove now obsolete remove_from_account_conversations method
- remove_from_search_index uses array of ids, instead of mapping
  the ids from an array - this should be more efficient
- use the in_batches scope to call delete_all, instead of running
  another db query for this - because it is again more efficient
- add TODO comment for calling models private method with send

* refactor(status): simplify unlink_from_conversations

- add `has_many through:` relation mentioned_accounts
- use model scope local instead of method call `Status#local?`
- more readable add account to inbox_owners when account.local?

* refactor(status): searchable_by way less sub selects

These queries all included a sub-select. Doing the same with a joins
should be more efficient.
Since this method does 5 such queries, this should be significant,
since it technically halves the query count.

This is how it was:

```ruby
[3] pry(main)> Status.first.mentions.where(account: Account.local, silent: false).explain
  Status Load (1.6ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1  [["LIMIT", 1]]
  Mention Load (1.5ms)  SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2  [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=0.15..23.08 rows=1 width=41)
   ->  Seq Scan on accounts  (cost=0.00..10.90 rows=1 width=8)
         Filter: (domain IS NULL)
   ->  Index Scan using index_mentions_on_account_id_and_status_id on mentions  (cost=0.15..8.17 rows=1 width=41)
         Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
         Filter: (NOT silent)
(6 rows)
```

This is how it is with this change:

```ruby
[4] pry(main)> Status.first.mentions.joins(:account).merge(Account.local).active.explain
  Status Load (1.7ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1  [["LIMIT", 1]]
  Mention Load (0.7ms)  SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2  [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=0.15..23.08 rows=1 width=41)
   ->  Seq Scan on accounts  (cost=0.00..10.90 rows=1 width=8)
         Filter: (domain IS NULL)
   ->  Index Scan using index_mentions_on_account_id_and_status_id on mentions  (cost=0.15..8.17 rows=1 width=41)
         Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
         Filter: (NOT silent)
(6 rows)
```
2022-11-27 20:41:18 +01:00
Claire
625216d8e1
Fix attachments of edited statuses not being fetched (#21565)
* Fix attachments of edited statuses not being fetched

* Fix tests
2022-11-27 20:39:05 +01:00
Claire
d587a268fd
Add logging for Rails cache timeouts (#21667)
* Reduce redis cache store connect timeout from default 20 seconds to 5 seconds

* Log cache store errors
2022-11-27 20:37:37 +01:00
kedama
14e2354eea
Fix status mismatch of sensitive check (#21724) 2022-11-27 20:36:21 +01:00
afontenot
f17fc5742e
Clear voter count when poll is reset (#21700)
When a poll is edited, we reset the poll and remove all previous
votes. However, prior to this commit, the voter count on the poll
was not reset. This leads to incorrect percentages being shown in
poll results.

Fixes #21696
2022-11-26 23:08:25 +01:00
Jeremy Kescher
0897c13799
v4.0.2+1.0.5 2022-11-26 14:42:36 +01:00
Jeremy Kescher
21f4a310a7
Move to Ruby 3.0.5 2022-11-26 14:37:19 +01:00
Jeremy Kescher
cf4ef1d724
Try Ruby 3.1.3 (requires OpenSSL 3) 2022-11-26 14:24:05 +01:00
Jeremy Kescher
f34d3b838e
Merge remote-tracking branch 'upstream/main' into develop 2022-11-26 14:02:07 +01:00