about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authorpluralcafe-docker <git@plural.cafe>2018-12-11 19:07:38 +0000
committerpluralcafe-docker <git@plural.cafe>2018-12-11 19:07:38 +0000
commit1c0b2479045015b96907eaa7567bfd14e4593424 (patch)
treea054dda635ffd019bf2fdc10ed4f3341264f1490 /app/models
parentee5213093a084c2eb5fa97fb4bdea6019dda5cf5 (diff)
Revert "Add profile directory (#9427)"
This reverts commit ee5213093a084c2eb5fa97fb4bdea6019dda5cf5.
Diffstat (limited to 'app/models')
-rw-r--r--app/models/account.rb40
-rw-r--r--app/models/account_stat.rb12
-rw-r--r--app/models/account_tag_stat.rb24
-rw-r--r--app/models/concerns/account_associations.rb3
-rw-r--r--app/models/concerns/account_counters.rb1
-rw-r--r--app/models/tag.rb26
6 files changed, 2 insertions, 104 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index f993b0765..e6b5bd69f 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -43,13 +43,11 @@
 #  featured_collection_url :string
 #  fields                  :jsonb
 #  actor_type              :string
-#  discoverable            :boolean
 #
 
 class Account < ApplicationRecord
   USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
   MENTION_RE  = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i
-  MIN_FOLLOWERS_DISCOVERY = 10
 
   include AccountAssociations
   include AccountAvatar
@@ -95,10 +93,6 @@ class Account < ApplicationRecord
   scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
   scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
   scope :searchable, -> { where(suspended: false).where(moved_to_account_id: nil) }
-  scope :discoverable, -> { where(silenced: false).where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)) }
-  scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) }
-  scope :popular, -> { order('account_stats.followers_count desc') }
-  scope :by_recent_status, -> { order('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc') }
 
   delegate :email,
            :unconfirmed_email,
@@ -184,40 +178,6 @@ class Account < ApplicationRecord
     @keypair ||= OpenSSL::PKey::RSA.new(private_key || public_key)
   end
 
-  def tags_as_strings=(tag_names)
-    tag_names.map! { |name| name.mb_chars.downcase }
-    tag_names.uniq!(&:to_s)
-
-    # Existing hashtags
-    hashtags_map = Tag.where(name: tag_names).each_with_object({}) { |tag, h| h[tag.name] = tag }
-
-    # Initialize not yet existing hashtags
-    tag_names.each do |name|
-      next if hashtags_map.key?(name)
-      hashtags_map[name.downcase] = Tag.new(name: name)
-    end
-
-    # Remove hashtags that are to be deleted
-    tags.each do |tag|
-      if hashtags_map.key?(tag.name)
-        hashtags_map.delete(tag.name)
-      else
-        transaction do
-          tags.delete(tag)
-          tag.decrement_count!(:accounts_count)
-        end
-      end
-    end
-
-    # Add hashtags that were so far missing
-    hashtags_map.each_value do |tag|
-      transaction do
-        tags << tag
-        tag.increment_count!(:accounts_count)
-      end
-    end
-  end
-
   def fields
     (self[:fields] || []).map { |f| Field.new(self, f) }
   end
diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb
index 9813aa84f..d5715268e 100644
--- a/app/models/account_stat.rb
+++ b/app/models/account_stat.rb
@@ -1,4 +1,5 @@
 # frozen_string_literal: true
+
 # == Schema Information
 #
 # Table name: account_stats
@@ -10,25 +11,16 @@
 #  followers_count :bigint(8)        default(0), not null
 #  created_at      :datetime         not null
 #  updated_at      :datetime         not null
-#  last_status_at  :datetime
 #
 
 class AccountStat < ApplicationRecord
   belongs_to :account, inverse_of: :account_stat
 
   def increment_count!(key)
-    update(attributes_for_increment(key))
+    update(key => public_send(key) + 1)
   end
 
   def decrement_count!(key)
     update(key => [public_send(key) - 1, 0].max)
   end
-
-  private
-
-  def attributes_for_increment(key)
-    attrs = { key => public_send(key) + 1 }
-    attrs[:last_status_at] = Time.now.utc if key == :statuses_count
-    attrs
-  end
 end
diff --git a/app/models/account_tag_stat.rb b/app/models/account_tag_stat.rb
deleted file mode 100644
index 3c36c155a..000000000
--- a/app/models/account_tag_stat.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# frozen_string_literal: true
-# == Schema Information
-#
-# Table name: account_tag_stats
-#
-#  id             :bigint(8)        not null, primary key
-#  tag_id         :bigint(8)        not null
-#  accounts_count :bigint(8)        default(0), not null
-#  hidden         :boolean          default(FALSE), not null
-#  created_at     :datetime         not null
-#  updated_at     :datetime         not null
-#
-
-class AccountTagStat < ApplicationRecord
-  belongs_to :tag, inverse_of: :account_tag_stat
-
-  def increment_count!(key)
-    update(key => public_send(key) + 1)
-  end
-
-  def decrement_count!(key)
-    update(key => [public_send(key) - 1, 0].max)
-  end
-end
diff --git a/app/models/concerns/account_associations.rb b/app/models/concerns/account_associations.rb
index 38e2481c5..9dba8000d 100644
--- a/app/models/concerns/account_associations.rb
+++ b/app/models/concerns/account_associations.rb
@@ -50,8 +50,5 @@ module AccountAssociations
 
     # Account migrations
     belongs_to :moved_to_account, class_name: 'Account', optional: true
-
-    # Hashtags
-    has_and_belongs_to_many :tags
   end
 end
diff --git a/app/models/concerns/account_counters.rb b/app/models/concerns/account_counters.rb
index 3581df8dd..fa3ec9a3d 100644
--- a/app/models/concerns/account_counters.rb
+++ b/app/models/concerns/account_counters.rb
@@ -16,7 +16,6 @@ module AccountCounters
            :followers_count=,
            :increment_count!,
            :decrement_count!,
-           :last_status_at,
            to: :account_stat
 
   def account_stat
diff --git a/app/models/tag.rb b/app/models/tag.rb
index b28e2cc18..4f31f796e 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -11,31 +11,12 @@
 
 class Tag < ApplicationRecord
   has_and_belongs_to_many :statuses
-  has_and_belongs_to_many :accounts
-
-  has_one :account_tag_stat, dependent: :destroy
 
   HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_·][[:word:]_]*'
   HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
 
   validates :name, presence: true, uniqueness: true, format: { with: /\A#{HASHTAG_NAME_RE}\z/i }
 
-  scope :discoverable, -> { joins(:account_tag_stat).where(AccountTagStat.arel_table[:accounts_count].gt(0)).where(account_tag_stats: { hidden: false }).order(name: :asc) }
-  scope :hidden, -> { where(account_tag_stats: { hidden: true }) }
-
-  delegate :accounts_count,
-           :accounts_count=,
-           :increment_count!,
-           :decrement_count!,
-           :hidden?,
-           to: :account_tag_stat
-
-  after_save :save_account_tag_stat
-
-  def account_tag_stat
-    super || build_account_tag_stat
-  end
-
   def to_param
     name
   end
@@ -62,11 +43,4 @@ class Tag < ApplicationRecord
       Tag.where('lower(name) like lower(?)', pattern).order(:name).limit(limit)
     end
   end
-
-  private
-
-  def save_account_tag_stat
-    return unless account_tag_stat&.changed?
-    account_tag_stat.save
-  end
 end