0
0
Fork 0

Adding a block model and filter mentions from blocked users (fix #60)

This commit is contained in:
Eugen Rochko 2016-10-03 17:11:54 +02:00
parent a488b05726
commit 9d59d7b463
11 changed files with 55 additions and 12 deletions

View file

@ -33,8 +33,12 @@ class Account < ApplicationRecord
has_many :active_relationships, class_name: 'Follow', foreign_key: 'account_id', dependent: :destroy
has_many :passive_relationships, class_name: 'Follow', foreign_key: 'target_account_id', dependent: :destroy
has_many :following, through: :active_relationships, source: :target_account
has_many :followers, through: :passive_relationships, source: :account
has_many :following, -> { order('follows.created_at desc') }, through: :active_relationships, source: :target_account
has_many :followers, -> { order('follows.created_at desc') }, through: :passive_relationships, source: :account
# Block relationships
has_many :block_relationships, class_name: 'Block', foreign_key: 'account_id', dependent: :destroy
has_many :blocking, -> { order('blocks.created_at desc') }, through: :block_relationships, source: :target_account
has_many :media_attachments, dependent: :destroy
@ -57,6 +61,10 @@ class Account < ApplicationRecord
following.include?(other_account)
end
def blocking?(other_account)
blocking.include?(other_account)
end
def local?
domain.nil?
end

7
app/models/block.rb Normal file
View file

@ -0,0 +1,7 @@
class Block < ApplicationRecord
belongs_to :account
belongs_to :target_account, class_name: 'Account'
validates :account, :target_account, presence: true
validates :account_id, uniqueness: { scope: :target_account_id }
end

View file

@ -47,7 +47,7 @@ class StreamEntry < ApplicationRecord
end
def mentions
activity.respond_to?(:mentions) ? activity.mentions.map { |x| x.account } : []
activity.respond_to?(:mentions) ? activity.mentions.map(&:account) : []
end
def activity