Add public_unlisted scope as status privacy

This commit is contained in:
KMY 2023-03-05 13:24:31 +09:00
parent b049e7c502
commit ed3abf4f2a
35 changed files with 64 additions and 39 deletions

View file

@ -51,7 +51,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility
enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4, public_unlisted: 10 }, _suffix: :visibility
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
@ -99,7 +99,8 @@ class Status < ApplicationRecord
scope :with_accounts, ->(ids) { where(id: ids).includes(:account) }
scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :with_public_visibility, -> { where(visibility: :public) }
scope :with_public_visibility, -> { where(visibility: [:public, :public_unlisted]) }
scope :with_global_timeline_visibility, -> { where(visibility: [:public]) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) }
scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) }
@ -232,7 +233,7 @@ class Status < ApplicationRecord
end
def distributable?
public_visibility? || unlisted_visibility?
public_visibility? || unlisted_visibility? || public_unlisted_visibility?
end
alias sign? distributable?