Commit graph

6843 commits

Author SHA1 Message Date
ThibG
1d8a374f2a Fix BackupService crashing when an attachment is missing (#11241)
* Fix BackupService crashing when an attachment is missing

For various reasons such as admin error or out-of-sync media and
database backups, it might be possible for local attachments to be lost.

This commit allows the BackupService to continue its work even if some media
file is missing.

* Change error message
2019-07-15 00:48:49 +02:00
Thibaut Girka
025cfdf901 Add link to edit each listed filter 2019-07-15 00:48:28 +02:00
Thibaut Girka
af4979e321 Make some strings translatable 2019-07-15 00:48:28 +02:00
Thibaut Girka
9339b4634e Minor refactoring 2019-07-15 00:48:28 +02:00
Thibaut Girka
59b8573907 Move the “Show why” button inline 2019-07-15 00:48:28 +02:00
Thibaut Girka
fde918bf92 Implement feature to add filtered phrases to content warnings 2019-07-15 00:48:28 +02:00
Thibaut Girka
0b23403d58 Implement option to completely hide filtered toots 2019-07-15 00:48:28 +02:00
Thibaut Girka
6476b7dabe Add options to configure filtering behavior 2019-07-15 00:48:28 +02:00
Thibaut Girka
67d1b0c997 Add a way to know why a status has been filtered, and show it anyway 2019-07-15 00:48:28 +02:00
Thibaut Girka
79e97d71d4 Do not keep polls pre-filled in thread mode 2019-07-15 00:41:09 +02:00
Thibaut Girka
4eb6457889 Fix error boundary CSS 2019-07-15 00:28:31 +02:00
Thibaut Girka
8184a7407d Fix report dialog crashing when a toot gets deleted
Fixes #1155
2019-07-10 19:53:31 +02:00
ThibG
53b0221e7d Merge pull request #1152 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
2019-07-07 22:26:10 +02:00
ThibG
e2c93b4b34 [Glitch] Only scroll to the compose form if it's not horizontally in the viewport
Port 64909cf0d9 to glitch-soc
2019-07-07 14:03:12 +02:00
ThibG
73051a4c10 Fix support for HTTP proxies (#11245)
* Disable incorrect check for hidden services in Socket

Hidden services can only be accessed with an HTTP proxy, in which
case the host seen by the Socket class will be the proxy, not the
target host.

Hidden services are already filtered in `Request#initialize`.

* Use our Socket class to connect to HTTP proxies

Avoid the timeout logic being bypassed

* Add support for IP addresses in Request::Socket

* Refactor a bit, no need to keep the DNS resolver around
2019-07-07 13:53:09 +02:00
Thibaut Girka
d7a7f21646 Merge commit '64909cf0d988fb09917c41cfbc81b1e9a5132aca' into glitch-soc/merge-upstream
Unlike upstream, kept the direct timeline endpoint, as it is still of use in
glitch-soc.
2019-07-07 13:49:31 +02:00
ThibG
64909cf0d9 Only scroll to the compose form if it's not horizontally in the viewport (#11246)
Avoids jumping the scroll around vertically when giving it focus and
editing long toots.
2019-07-06 18:18:08 +02:00
Eugen Rochko
ce5f0247f6 Fix option to send e-mail notification about account action always being true (#11242) 2019-07-06 13:54:32 +02:00
ThibG
33607c43a5 Fix HTTP requests to IPv6 hosts (#11240) 2019-07-05 22:03:00 +02:00
Thibaut Girka
017b0ea6ff Allow serializing local-only toots in backup service
Fixes #1153
2019-07-05 21:50:19 +02:00
Eugen Rochko
d9f42ba34b Remove deprecated REST API GET /api/v1/statuses/:id/card (#11213) 2019-07-05 02:15:24 +02:00
Eugen Rochko
6cae1b40bf Remove deprecated REST API GET /api/v1/timelines/direct (#11212) 2019-07-05 02:14:56 +02:00
ThibG
447e13fec3 [Glitch] Memoize ancestorIds and descendantIds in detailed status view
Port eda4094171 to glitch-soc
2019-07-04 16:26:17 +02:00
ThibG
b8d7f860ca [Glitch] When deleting & redrafting a poll, fill in closest expires_in
Port a55fd40802 to glitch-soc
2019-07-04 16:24:48 +02:00
Thibaut Girka
9866c2bfff Merge branch 'master' into glitch-soc/merge-upstream 2019-07-04 16:21:39 +02:00
ThibG
eda4094171 Memoize ancestorIds and descendantIds in detailed status view (#11234) 2019-07-02 16:03:54 +02:00
Eugen Rochko
7391d223ab Fix statsd UDP sockets not being cleaned up in Sidekiq (#11230) 2019-07-02 01:01:17 +02:00
Eugen Rochko
227d9297ba Change ActivityPub::DeliveryWorker to not retry HTTP 501 errors (#11233) 2019-07-02 00:59:53 +02:00
ThibG
a55fd40802 When deleting & redrafting a poll, fill in closest expires_in (#11203)
Use the smallest preset expires_in such that the new poll would
not expire before the old one.

In the typical case of a quick delete & redraft, this results in
using the same poll duration.

Fixes #10567
2019-07-02 00:36:16 +02:00
Eugen Rochko
e782fcef4f Add request pool to improve delivery performance (#10353)
* Add request pool to improve delivery performance

Fix #7909

* Ensure connection is closed when exception interrupts execution

* Remove Timeout#timeout from socket connection

* Fix infinite retrial loop on HTTP::ConnectionError

* Close sockets on failure, reduce idle time to 90 seconds

* Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server

* Use a shared pool size, 512 by default, to stay below open file limit

* Add some tests

* Add more tests

* Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds

* Use a shared pool that returns preferred connection but re-purposes other ones when needed

* Fix wrong connection being returned on subsequent calls within the same thread

* Reduce mutex calls on flushes from 2 to 1 and add test for reaping
2019-07-02 00:34:38 +02:00
Thibaut Girka
1181f84c79 Minor cleanup and maybe minor performance improvements 2019-07-01 19:31:21 +02:00
Thibaut Girka
65b1946489 Minor optimization regarding regexp filtering in timelines 2019-07-01 19:31:21 +02:00
Thibaut Girka
bcbc9ed7f6 Use strict equality rather than Immutable.is as the compared props are values 2019-07-01 19:31:10 +02:00
Thibaut Girka
e4ffc42c8c Assume children of visible IntersectionObserverArticle always change
This fixes multiple issues, while adding few computations
2019-07-01 19:31:10 +02:00
Thibaut Girka
b9ae9c7205 Revert to using upstream's optimisations
This *does* break things, as `shouldComponentUpdate` assume the
children to never change!
2019-07-01 19:31:10 +02:00
Thibaut Girka
081790f04b Fix error boundary DOM 2019-07-01 19:30:59 +02:00
Thibaut Girka
edad7f2a6c Fix some React warnings 2019-07-01 19:30:59 +02:00
Eugen Rochko
9ac82421f8 Change domain block behaviour to prevent creation of accounts from suspended domains (#11219) 2019-07-01 19:13:30 +02:00
ThibG
a70732fd06 Fix expiration date of filters being set to “Never” when editing them (#11204)
When editing a custom filter, select the shortest preset duration that
still covers the remaining time of that filter.

Fixes #9506
2019-06-30 16:11:21 +02:00
Eugen Rochko
6385ddb97f Fix support for MP4 files that are actually M4V files (#11210)
Resolve #11187
2019-06-30 16:10:43 +02:00
Thibaut Girka
6b21ce2daa [Glitch] When sending a toot, ensure a CW is only set if the CW field is visible
Partial port of fa7866c9c8 to glitch-soc

It doesn't ensure the field isn't changed, just that it isn't submitted if
the field isn't visible. Ensuring the field isn't changed would require
reworking the “always show CW field” feature.
2019-06-30 14:35:03 +02:00
ThibG
c49a57e989 [Glitch] Optimize makeGetStatus
Port ff65c494a6 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-06-30 11:06:04 +02:00
ThibG
68e998de21 [Glitch] Use ScrollToOptions for smooth scrolling if supported
Port 20b1f8dcf6 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-06-30 11:01:01 +02:00
Thibaut Girka
5c23174a2f Merge branch 'master' into glitch-soc/merge-upstream 2019-06-30 10:59:45 +02:00
ThibG
ff65c494a6 Optimize makeGetStatus (#11211)
* Optimize makeGetStatus

Because `ImmutableList.filter` always returns a new object and `createSelector`
memoizes based on object identity, the selector returned by `makeGetStatus`
would *always* execute.

To avoid that, we wrap `getFilters` into a new memoizer that memoizes based on
deep equality, thus returning the same object as long as the filters haven't
changed, allowing the memoization of `makeGetStatus` to work.

Furthermore, we memoize the compiled regexs instead of recomputing them each
time the selector is called.

* Fix memoized result being cleared too often

* Make notifications use memoized getFiltersRegex
2019-06-30 00:12:38 +02:00
ThibG
fa7866c9c8 When sending a toot, ensure a CW is only set if the CW field is visible (#11206)
In some occasions, such as the browser or a browser extension auto-filling
the existing but disabled/hidden CW field, a CW can be set without the user
knowing.
2019-06-29 18:32:36 +02:00
ThibG
20b1f8dcf6 Use ScrollToOptions for smooth scrolling if supported (#11207) 2019-06-29 18:32:06 +02:00
Eugen Rochko
a3cd9e432d [Glitch] Add categories for custom emojis
Port front-end changes from 1c612f24e4 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-06-28 21:42:37 +02:00
ThibG
284ff65022 [Glitch] Fix swiping columns on mobile sometimes failing
Port 9668e42afd to glitch-soc
2019-06-28 21:38:34 +02:00
Thibaut Girka
6739c423ff Merge branch 'master' into glitch-soc/merge-upstream 2019-06-28 21:36:50 +02:00