Fix some antenna views
This commit is contained in:
parent
49d036e9c6
commit
59fcf47180
5 changed files with 19 additions and 11 deletions
|
@ -1067,6 +1067,13 @@ a.name-tag,
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.listname {
|
||||
color: $dark-text-color;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.expiration {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class Antenna < ApplicationRecord
|
|||
scope :availables, -> { where(available: true).where(Arel.sql('any_keywords = FALSE OR any_domains = FALSE OR any_accounts = FALSE OR any_tags = FALSE')) }
|
||||
|
||||
def enabled?
|
||||
available && !expires? && !(any_keywords && any_domains && any_accounts && any_tags)
|
||||
available && !expired? && !(any_keywords && any_domains && any_accounts && any_tags)
|
||||
end
|
||||
|
||||
def expires_in
|
||||
|
@ -44,10 +44,6 @@ class Antenna < ApplicationRecord
|
|||
[30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].find { |expires_in| expires_in.from_now >= expires_at }
|
||||
end
|
||||
|
||||
def expires?
|
||||
expires_at.present? && expires_at < Time.now.utc
|
||||
end
|
||||
|
||||
def context
|
||||
context = []
|
||||
context << 'domain' if !any_domains
|
||||
|
@ -73,7 +69,7 @@ class Antenna < ApplicationRecord
|
|||
end
|
||||
|
||||
def keywords_raw=(raw)
|
||||
keywords = raw.split(/\R/).filter { |r| r.present? }.uniq
|
||||
keywords = raw.split(/\R/).filter { |r| r.present? && r.length >= 2 }.uniq
|
||||
self[:keywords] = keywords
|
||||
self[:any_keywords] = !keywords.any? && !exclude_keywords&.any?
|
||||
end
|
||||
|
|
|
@ -8,6 +8,7 @@ class DeleteAccountService < BaseService
|
|||
account_pins
|
||||
active_relationships
|
||||
aliases
|
||||
antennas
|
||||
block_relationships
|
||||
blocked_by_relationships
|
||||
conversation_mutes
|
||||
|
|
|
@ -119,13 +119,14 @@ class FanOutOnWriteService < BaseService
|
|||
def deliver_to_antennas!
|
||||
lists = []
|
||||
antennas = Antenna.availables
|
||||
antennas = antennas.left_joins(:antenna_accounts).where(any_accounts: true).or(Antenna.left_joins(:antenna_accounts) .where(antenna_accounts: { exclude: false, account: @status.account }))
|
||||
antennas = antennas.left_joins(:antenna_domains) .where(any_domains: true) .or(Antenna.left_joins(:antenna_accounts).left_joins(:antenna_domains) .where(antenna_domains: { exclude: false, name: @status.account.domain }))
|
||||
antennas = antennas.left_joins(:antenna_tags) .where(any_tags: true) .or(Antenna.left_joins(:antenna_accounts).left_joins(:antenna_domains).left_joins(:antenna_tags).where(antenna_tags: { exclude: false, tag: @status.tags }))
|
||||
antennas = antennas.left_joins(:antenna_accounts).where(any_accounts: true).or(Antenna.availables.left_joins(:antenna_accounts) .where(antenna_accounts: { exclude: false, account: @status.account }))
|
||||
antennas = antennas.left_joins(:antenna_domains) .where(any_domains: true) .or(Antenna.availables.left_joins(:antenna_accounts).left_joins(:antenna_domains) .where(antenna_domains: { exclude: false, name: @status.account.domain }))
|
||||
antennas = antennas.left_joins(:antenna_tags) .where(any_tags: true) .or(Antenna.availables.left_joins(:antenna_accounts).left_joins(:antenna_domains).left_joins(:antenna_tags).where(antenna_tags: { exclude: false, tag: @status.tags }))
|
||||
antennas = antennas.where(account: @status.account.followers) if @status.visibility.to_sym == :unlisted
|
||||
antennas.in_batches do |ans|
|
||||
ans.each do |antenna|
|
||||
next if !antenna.enabled?
|
||||
next if antenna.keywords.any? && !antenna.keywords.any? { |keyword| @status.text.include?(keyword) }
|
||||
next if antenna.keywords.any? && [nil, :public].include?(@status.searchability.to_sym) && !antenna.keywords.any? { |keyword| @status.text.include?(keyword) }
|
||||
next if antenna.exclude_keywords.any? && antenna.exclude_keywords.any? { |keyword| @status.text.include?(keyword) }
|
||||
next if antenna.antenna_accounts.where(exclude: true, account: @status.account).any?
|
||||
next if antenna.antenna_domains.where(exclude: true, name: @status.account.domain).any?
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
- else
|
||||
= t('antennas.index.expires_in', distance: distance_of_time_in_words_to_now(antenna.expires_at))
|
||||
|
||||
.listname
|
||||
= antenna.list.title
|
||||
|
||||
.filters-list__item__permissions
|
||||
%ul.permissions-list
|
||||
- unless antenna.antenna_domains.empty?
|
||||
|
@ -58,7 +61,7 @@
|
|||
|
||||
.announcements-list__item__action-bar
|
||||
.announcements-list__item__meta
|
||||
= t('antenna.index.contexts', contexts: antenna.context.map { |context| I18n.t("antenna.contexts.#{context}") }.join(', '))
|
||||
= t('antennas.index.contexts', contexts: antenna.context.map { |context| I18n.t("antennas.contexts.#{context}") }.join(', '))
|
||||
|
||||
%div
|
||||
= table_link_to 'pencil', t('antennas.edit.title'), edit_antenna_path(antenna)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue