Eugen Rochko 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
..
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-13 16:49:19 +02:00
2019-06-13 16:49:19 +02:00
2019-06-13 16:49:19 +02:00
2019-06-18 22:58:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-13 20:17:56 +02:00
2019-06-20 02:52:34 +02:00
2019-06-13 16:49:19 +02:00
2019-07-13 16:45:50 +02:00
2019-06-13 20:17:56 +02:00
2019-06-18 22:58:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-22 00:57:48 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-13 20:17:56 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-22 00:57:48 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-22 00:57:48 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 23:46:19 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-18 22:58:18 +02:00
2019-06-12 15:56:18 +02:00
2019-06-12 15:56:18 +02:00