* Wip: マイグレーション、設定など一式 * Fix test * Fix test * Fix: マスター用の設定を他サーバーに送信しないよう修正 * DTL、外部サーバーの情報受け入れのテストを追加 * スペルミスを修正 * Web画面に設定項目追加 * 既存の`master_settings`を上書きしないよう修正
This commit is contained in:
parent
a7dec3c59b
commit
76f2f2ed0c
26 changed files with 284 additions and 52 deletions
|
@ -23,8 +23,10 @@ class DeliveryAntennaService
|
|||
private
|
||||
|
||||
def delivery!
|
||||
must_dtl_tag = @account.dissubscribable
|
||||
return if must_dtl_tag && !DTL_ENABLED
|
||||
subscription_policy = @account.subscription_policy
|
||||
|
||||
dtl_post = @status.dtl? && dtl_enabled?
|
||||
return if subscription_policy == :block && (!dtl_post || !@account.user&.setting_dtl_force_subscribable)
|
||||
|
||||
tag_ids = @status.tags.pluck(:id)
|
||||
domain = @account.domain
|
||||
|
@ -38,8 +40,8 @@ class DeliveryAntennaService
|
|||
antennas = antennas.left_joins(:antenna_accounts).where(any_accounts: true).or(Antenna.left_joins(:antenna_accounts).where(antenna_accounts: { account: @account }))
|
||||
|
||||
antennas = Antenna.where(id: antennas.select(:id))
|
||||
if must_dtl_tag
|
||||
dtl_tag = Tag.find_or_create_by_names(DTL_TAG).first
|
||||
if subscription_policy == :block
|
||||
dtl_tag = Tag.find_or_create_by_names(dtl_tag_name).first
|
||||
return if !dtl_tag || tag_ids.exclude?(dtl_tag.id)
|
||||
|
||||
antennas = antennas.left_joins(:antenna_tags).where(antenna_tags: { tag_id: dtl_tag.id })
|
||||
|
@ -125,9 +127,9 @@ class DeliveryAntennaService
|
|||
def followers_only?
|
||||
case @status.visibility.to_sym
|
||||
when :public, :public_unlisted, :login, :limited
|
||||
false
|
||||
@status.account.subscription_policy == :followers_only
|
||||
when :unlisted
|
||||
@status.compute_searchability != 'public'
|
||||
@status.compute_searchability != 'public' || @status.account.subscription_policy == :followers_only
|
||||
else
|
||||
true
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue