about summary refs log tree commit diff
path: root/db
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2017-10-09 17:28:28 -0500
committerDavid Yip <yipdw@member.fsf.org>2017-10-21 14:53:41 -0500
commit9093e2de7a133470eec1049a13465f81928d0119 (patch)
treefd8264bbc6312cd599031cfdd944564b33008e4e /db
parentd589dd7cd0512b558412a38a935b1a9cdcbf0ce7 (diff)
Add KeywordMute model.
Gist of the proposed keyword mute implementation:

Keyword mutes are represented server-side as one keyword per record.
For each account, there exists a keyword regex that is generated as one
big alternation of all keywords.  This regex is cached (in Redis, I
guess) so we can quickly get it when filtering in FeedManager.
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20171009222537_create_keyword_mutes.rb11
-rw-r--r--db/schema.rb9
2 files changed, 20 insertions, 0 deletions
diff --git a/db/migrate/20171009222537_create_keyword_mutes.rb b/db/migrate/20171009222537_create_keyword_mutes.rb
new file mode 100644
index 000000000..ee690e799
--- /dev/null
+++ b/db/migrate/20171009222537_create_keyword_mutes.rb
@@ -0,0 +1,11 @@
+class CreateKeywordMutes < ActiveRecord::Migration[5.1]
+  def change
+    create_table :keyword_mutes do |t|
+      t.references :account, null: false
+      t.string :keyword, null: false
+      t.timestamps
+    end
+
+    add_foreign_key :keyword_mutes, :accounts, on_delete: :cascade
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 128f51ee7..420bb0d2e 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -167,6 +167,14 @@ ActiveRecord::Schema.define(version: 20171010025614) do
     t.bigint "account_id", null: false
   end
 
+  create_table "keyword_mutes", force: :cascade do |t|
+    t.bigint "account_id", null: false
+    t.string "keyword", null: false
+    t.datetime "created_at", null: false
+    t.datetime "updated_at", null: false
+    t.index ["account_id"], name: "index_keyword_mutes_on_account_id"
+  end
+
   create_table "media_attachments", force: :cascade do |t|
     t.bigint "status_id"
     t.string "file_file_name"
@@ -473,6 +481,7 @@ ActiveRecord::Schema.define(version: 20171010025614) do
   add_foreign_key "follows", "accounts", column: "target_account_id", name: "fk_745ca29eac", on_delete: :cascade
   add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade
   add_foreign_key "imports", "accounts", name: "fk_6db1b6e408", on_delete: :cascade
+  add_foreign_key "keyword_mutes", "accounts", on_delete: :cascade
   add_foreign_key "media_attachments", "accounts", name: "fk_96dd81e81b", on_delete: :nullify
   add_foreign_key "media_attachments", "statuses", on_delete: :nullify
   add_foreign_key "mentions", "accounts", name: "fk_970d43f9d1", on_delete: :cascade