diff --git a/app/javascript/mastodon/features/compose/components/search.jsx b/app/javascript/mastodon/features/compose/components/search.jsx index 1c629bcbb4..5ae6ee1090 100644 --- a/app/javascript/mastodon/features/compose/components/search.jsx +++ b/app/javascript/mastodon/features/compose/components/search.jsx @@ -50,6 +50,7 @@ class Search extends PureComponent { { label: <>is: , action: e => { e.preventDefault(); this._insertText('is:') } }, { label: <>language: , action: e => { e.preventDefault(); this._insertText('language:') } }, { label: <>from: , action: e => { e.preventDefault(); this._insertText('from:') } }, + { label: <>domain: , action: e => { e.preventDefault(); this._insertText('domain:') } }, { label: <>before: , action: e => { e.preventDefault(); this._insertText('before:') } }, { label: <>during: , action: e => { e.preventDefault(); this._insertText('during:') } }, { label: <>after: , action: e => { e.preventDefault(); this._insertText('after:') } }, diff --git a/app/lib/search_query_transformer.rb b/app/lib/search_query_transformer.rb index 165359cd79..23c23cdedf 100644 --- a/app/lib/search_query_transformer.rb +++ b/app/lib/search_query_transformer.rb @@ -103,6 +103,10 @@ class SearchQueryTransformer < Parslet::Transform @filter = :account_id @type = :term @term = account_id_from_term(term) + when 'domain' + @filter = :domain + @type = :term + @term = domain_from_term(term) when 'before' @filter = :created_at @type = :range @@ -137,6 +141,12 @@ class SearchQueryTransformer < Parslet::Transform # an ID that does not exist account&.id || -1 end + + def domain_from_term(term) + return '' if %w(local me).include?(term) + + term + end end rule(clause: subtree(:clause)) do