diff --git a/app/controllers/antennas_controller.rb b/app/controllers/antennas_controller.rb index b7639d0e27..700f48b19d 100644 --- a/app/controllers/antennas_controller.rb +++ b/app/controllers/antennas_controller.rb @@ -59,7 +59,7 @@ class AntennasController < ApplicationController end def resource_params - params.require(:antenna).permit(:title, :list, :available, :expires_in, :keywords_raw, :exclude_keywords_raw, :domains_raw, :exclude_domains_raw, :accounts_raw, :exclude_accounts_raw, :tags_raw, :exclude_tags_raw) + params.require(:antenna).permit(:title, :list, :available, :expires_in, :with_media_only, :keywords_raw, :exclude_keywords_raw, :domains_raw, :exclude_domains_raw, :accounts_raw, :exclude_accounts_raw, :tags_raw, :exclude_tags_raw) end def thin_resource_params diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index e05e54c62d..d29b051d0d 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -123,6 +123,7 @@ class FanOutOnWriteService < BaseService 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 = antennas.where(with_media_only: false) if !@status.with_media? antennas.in_batches do |ans| ans.each do |antenna| next if !antenna.enabled? diff --git a/app/views/antennas/_antenna_fields.html.haml b/app/views/antennas/_antenna_fields.html.haml index 7f49139e0a..83fddfb139 100644 --- a/app/views/antennas/_antenna_fields.html.haml +++ b/app/views/antennas/_antenna_fields.html.haml @@ -18,6 +18,7 @@ %hr.spacer/ %h4= t('antennas.contexts.domain') +%p.hint= t 'antennas.edit.domains_hint' .fields-row .fields-row__column.fields-row__column-6.fields-group @@ -43,9 +44,14 @@ = f.input :exclude_tags_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_tags_raw') %h4= t('antennas.contexts.keyword') +%p.hint= t 'antennas.edit.keywords_hint' .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.keywords_raw') .fields-row__column.fields-row__column-6.fields-group = f.input :exclude_keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_keywords_raw') + +%hr.spacer/ +.fields-group + = f.input :with_media_only, wrapper: :with_label, label: t('antennas.edit.with_media_only'), hint: false diff --git a/config/locales/en.yml b/config/locales/en.yml index 080e9aa0c3..efadfb8e92 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -976,16 +976,19 @@ en: accounts_raw: Account list available: Available description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、検索許可が「公開」または明示的に設定されていないもの(検索許可システムに対応していないサーバーからの投稿)、かつ購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。 + domains_hint: ドメインとは、アカウントIDやサイトのURLのうち「kmy.blue」「example.com」に該当する部分です。自身のサーバーを指定することはできません domains_raw: Domain list exclude_accounts_raw: Excluding account list exclude_domains_raw: Excluding domain list exclude_keywords_raw: Excluding keyword list exclude_tags_raw: Excluding hashtag list hint: 下のリストに、絞り込み条件・除外条件を入力します。条件は複数指定することができます。1行につき1つずつ入力してください。空行、コメント、重複を含めることはできません。 + keywords_hint: キーワードは1つあたり最低2文字です。キーワードによる絞り込みを指定した場合、検索許可に対応しているサーバーからの投稿は、検索許可が「公開」以外のものは掲載されなくなります keywords_raw: Keyword list list: Destination list tags_raw: Hashtag list title: Edit antenna + with_media_only: With media only errors: deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface. empty_contexts: No contexts! You must set any context filters diff --git a/config/locales/ja.yml b/config/locales/ja.yml index ae588aaed3..8c8e8ec21c 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -955,16 +955,19 @@ ja: accounts_raw: 絞り込むアカウント available: 有効 description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、検索許可が「公開」または明示的に設定されていないもの(検索許可システムに対応していないサーバーからの投稿)、かつ購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。 + domains_hint: ドメインとは、アカウントIDやサイトのURLのうち「kmy.blue」「example.com」に該当する部分です。自身のサーバーを指定することはできません domains_raw: 絞り込むドメイン exclude_accounts_raw: 除外するアカウント exclude_domains_raw: 除外するドメイン exclude_keywords_raw: 除外するキーワード exclude_tags_raw: 除外するハッシュタグ hint: 下のリストに、絞り込み条件・除外条件を入力します。条件は複数指定することができます。1行につき1つずつ入力してください。空行、コメント、重複を含めることはできません。絞り込み条件(除外条件ではない)は最低1つ設定しなければいけません。 + keywords_hint: キーワードは1つあたり最低2文字です。キーワードによる絞り込みを指定した場合、検索許可に対応しているサーバーからの投稿は、検索許可が「公開」以外のものは掲載されなくなります keywords_raw: 絞り込むキーワード list: 投稿配置先リスト tags_raw: 絞り込むハッシュタグ title: アンテナを編集 + with_media_only: メディアのみ index: accounts: other: "%{count}件のアカウント"