Keyword/phrase filtering (#7905)

* Add keyword filtering

    GET|POST       /api/v1/filters
    GET|PUT|DELETE /api/v1/filters/:id

- Irreversible filters can drop toots from home or notifications
- Other filters can hide toots through the client app
- Filters use a phrase valid in particular contexts, expiration

* Make sure expired filters don't get applied client-side

* Add missing API methods

* Remove "regex filter" from column settings

* Add tests

* Add test for FeedManager

* Add CustomFilter test

* Add UI for managing filters

* Add streaming API event to allow syncing filters

* Fix tests
This commit is contained in:
Eugen Rochko 2018-06-29 15:34:36 +02:00 committed by GitHub
parent fbee9b5ac8
commit cdb101340a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 530 additions and 72 deletions

View file

@ -0,0 +1,13 @@
class CreateCustomFilters < ActiveRecord::Migration[5.2]
def change
create_table :custom_filters do |t|
t.belongs_to :account, foreign_key: { on_delete: :cascade }
t.datetime :expires_at
t.text :phrase, null: false, default: ''
t.string :context, array: true, null: false, default: []
t.boolean :irreversible, null: false, default: false
t.timestamps
end
end
end