diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-02-19 10:42:55 +0100 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2023-02-19 10:42:55 +0100 |
commit | 7452a959989f1259b68d08814437bab53ee89bb0 (patch) | |
tree | 389c2be7b7a326729e4687019a58950a07bd2dde /app/models/status.rb | |
parent | 4c68189d2b8b6a9a74fc13862b11bf6c6d523409 (diff) | |
parent | fef6c59b3abe349132dbe910b6aa243e59b732bb (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `.github/dependabot.yml`: Upstream made changes while we have dropped this file. Keep the file deleted. - `.prettierignore`: Upstream made changes at the end of the file, where we had our extra lines. Just moved our extra lines back at the end. - `app/serializers/initial_state_serializer.rb`: Upstream code style changes. Applied them. - `app/services/backup_service.rb`: Upstream code style changes. Applied them.
Diffstat (limited to 'app/models/status.rb')
-rw-r--r-- | app/models/status.rb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 4e4d960a4..c17921333 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -104,12 +104,12 @@ class Status < ApplicationRecord scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).where('accounts.domain IS NULL OR accounts.domain NOT IN (?)', account.excluded_from_timeline_domains) } - scope :tagged_with_all, ->(tag_ids) { + scope :tagged_with_all, lambda { |tag_ids| Array(tag_ids).map(&:to_i).reduce(self) do |result, id| result.joins("INNER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}") end } - scope :tagged_with_none, ->(tag_ids) { + scope :tagged_with_none, lambda { |tag_ids| where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids) } @@ -415,13 +415,12 @@ class Status < ApplicationRecord return [] if text.blank? text.scan(FetchLinkCardService::URL_PATTERN).map(&:second).uniq.filter_map do |url| - status = begin - if TagManager.instance.local_url?(url) - ActivityPub::TagManager.instance.uri_to_resource(url, Status) - else - EntityCache.instance.status(url) - end - end + status = if TagManager.instance.local_url?(url) + ActivityPub::TagManager.instance.uri_to_resource(url, Status) + else + EntityCache.instance.status(url) + end + status&.distributable? ? status : nil end end |