Commit Graph

6903 Commits

Author SHA1 Message Date
bde7a415b9 Add a way to know why a status has been filtered, and show it anyway 2019-07-15 00:48:28 +02:00
e9fac2def9 Do not keep polls pre-filled in thread mode 2019-07-15 00:41:09 +02:00
e0bfa685c6 Fix error boundary CSS 2019-07-15 00:28:31 +02:00
6ff67be0f6 Add a spam check (#11217)
* Add a spam check

* Use Nilsimsa to generate locality-sensitive hashes and compare using Levenshtein distance

* Add more tests

* Add exemption when the message is a reply to something that mentions the sender

* Use Nilsimsa Compare Value instead of Levenshtein distance

* Use MD5 for messages shorter than 10 characters

* Add message to automated report, do not add non-public statuses to
automated report, add trust level to accounts and make unsilencing
raise the trust level to prevent repeated spam checks on that account

* Expire spam check data after 3 months

* Add support for local statuses, reduce expiration to 1 week, always create a report

* Add content warnings to the spam check and exempt empty statuses

* Change Nilsimsa threshold to 95 and make sure removed statuses are removed from the spam check

* Add all matched statuses into automatic report
2019-07-13 16:45:50 +02:00
402302776c Change the retry limit in error of web push notification (#11292)
- Change the maximum count of retry for web push notification (Default -> 5).
   - In case of high load of subscribe server, the retries will be repeated many times.
   - Because the retries occupy the default queue, maximum retry count should be reduced.
2019-07-12 18:46:21 +02:00
5bf67ca913 Add ActivityPub secure mode (#11269)
* Add HTTP signature requirement for served ActivityPub resources

* Change `SECURE_MODE` to `AUTHORIZED_FETCH`

* Add 'Signature' to 'Vary' header and improve code style

* Improve code style by adding `public_fetch_mode?` method
2019-07-11 20:11:09 +02:00
4e1260feaa Fix BlockService trying to reject incorrect follow request (#11288)
Fixes #11148
2019-07-11 14:50:27 +02:00
4e8dcc5dbb Add HTTP signatures to all outgoing ActivityPub GET requests (#11284) 2019-07-11 14:49:55 +02:00
0baaee495f Fix report dialog crashing when a toot gets deleted
Fixes #1155
2019-07-10 19:53:31 +02:00
5d3feed191 Refactor fetching of remote resources (#11251) 2019-07-10 18:59:28 +02:00
d04c584159 Drop magic-public-key from webfinger replies as it's only used for OStatus (#11280) 2019-07-10 17:10:43 +02:00
85eb418e1f Fix handling of webfinger redirects in ResolveAccountService (#11279) 2019-07-10 17:10:12 +02:00
6172263a63 Fix activity being rendered within activity due to caching (#11271)
Fix #11270
2019-07-10 00:43:30 +02:00
4e92183227 Refactor domain block checks (#11268) 2019-07-09 03:27:35 +02:00
1e7187f2a8 Fix Status.remote scope matching *all* statuses (#11265) 2019-07-08 18:17:22 +02:00
ef15246397 Remove unused remote unfollow controller (#11250) 2019-07-08 12:04:06 +02:00
63c7fe8e48 Refactor controllers for statuses, accounts, and more (#11249) 2019-07-08 12:03:45 +02:00
87c1ad4ea3 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-08 02:24:25 +02:00
fce885f271 Merge pull request #1152 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
2019-07-07 22:26:10 +02:00
b851456139 Remove Atom feeds and old URLs in the form of GET /:username/updates/:id (#11247) 2019-07-07 16:16:51 +02:00
64f3bc77ac [Glitch] Only scroll to the compose form if it's not horizontally in the viewport
Port c07cca4727 to glitch-soc
2019-07-07 14:03:12 +02:00
a0b614f10a 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
7039dca12c Merge commit 'c07cca4727041ea5a5721acbc603d4bfb45a15a6' 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
406b46395d Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker (#11231) 2019-07-07 03:37:01 +02:00
58276715be 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 02:05:38 +02:00
23aeef52cc Remove Salmon and PubSubHubbub (#11205)
* Remove Salmon and PubSubHubbub endpoints

* Add error when trying to follow OStatus accounts

* Fix new accounts not being created in ResolveAccountService
2019-07-06 23:26:16 +02:00
c07cca4727 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
ae003d54f9 Fix option to send e-mail notification about account action always being true (#11242) 2019-07-06 13:54:32 +02:00
ed544f3166 Fix HTTP requests to IPv6 hosts (#11240) 2019-07-05 22:03:00 +02:00
e5f4d83e60 Allow serializing local-only toots in backup service
Fixes #1153
2019-07-05 21:50:19 +02:00
0c1b1069c9 Remove deprecated REST API GET /api/v1/statuses/:id/card (#11213) 2019-07-05 02:15:24 +02:00
3fd6ab99e6 Remove deprecated REST API GET /api/v1/timelines/direct (#11212) 2019-07-05 02:14:56 +02:00
47c30be8d8 [Glitch] Memoize ancestorIds and descendantIds in detailed status view
Port 99924f282f to glitch-soc
2019-07-04 16:26:17 +02:00
894d82a325 [Glitch] When deleting & redrafting a poll, fill in closest expires_in
Port dc88d226e1 to glitch-soc
2019-07-04 16:24:48 +02:00
6ab84c12a7 Merge branch 'master' into glitch-soc/merge-upstream 2019-07-04 16:21:39 +02:00
99924f282f Memoize ancestorIds and descendantIds in detailed status view (#11234) 2019-07-02 16:03:54 +02:00
1a747f7020 Fix statsd UDP sockets not being cleaned up in Sidekiq (#11230) 2019-07-02 01:01:17 +02:00
bc60d794f8 Change ActivityPub::DeliveryWorker to not retry HTTP 501 errors (#11233) 2019-07-02 00:59:53 +02:00
dc88d226e1 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
0d9ffe56fb 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
c94966891a Minor cleanup and maybe minor performance improvements 2019-07-01 19:31:21 +02:00
9d6b46fe34 Minor optimization regarding regexp filtering in timelines 2019-07-01 19:31:21 +02:00
c49f7d5d16 Use strict equality rather than Immutable.is as the compared props are values 2019-07-01 19:31:10 +02:00
82a76f03a4 Assume children of visible IntersectionObserverArticle always change
This fixes multiple issues, while adding few computations
2019-07-01 19:31:10 +02:00
c0b5ee315d 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
0ef6a114e7 Fix error boundary DOM 2019-07-01 19:30:59 +02:00
82cd138c89 Fix some React warnings 2019-07-01 19:30:59 +02:00
2cfa427ea7 Change domain block behaviour to prevent creation of accounts from suspended domains (#11219) 2019-07-01 19:13:30 +02:00
082b3b282f 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
06424786a1 Fix support for MP4 files that are actually M4V files (#11210)
Resolve #11187
2019-06-30 16:10:43 +02:00