diff options
Diffstat (limited to 'app/models/account.rb')
-rw-r--r-- | app/models/account.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 8eba4da79..2e1f7a448 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -122,6 +122,15 @@ class Account < ApplicationRecord username end + def common_followers_with(other_account) + results = Neography::Rest.new.execute_query('MATCH (a {account_id: {a_id}})-[:follows]->(b)-[:follows]->(c {account_id: {c_id}}) RETURN b.account_id', a_id: id, c_id: other_account.id) + ids = results['data'].map(&:first) + accounts = self.where(id: ids).with_counters.map { |a| [a.id, a] }.to_h + ids.map { |id| accounts[id] }.compact + rescue Neography::NeographyError, Excon::Error::Socket + [] + end + def self.find_local!(username) find_remote!(username, nil) end |