Merge commit '13ab4b54e2
' into upstream-20241204-15
This commit is contained in:
commit
a6a237bc8e
228 changed files with 2678 additions and 1266 deletions
|
@ -8,7 +8,6 @@ module Mastodon
|
|||
class LengthValidationError < ValidationError; end
|
||||
class DimensionsValidationError < ValidationError; end
|
||||
class StreamValidationError < ValidationError; end
|
||||
class FilterValidationError < ValidationError; end
|
||||
class RaceConditionError < Error; end
|
||||
class RateLimitExceededError < Error; end
|
||||
class SyntaxError < Error; end
|
||||
|
|
|
@ -46,7 +46,7 @@ module Mastodon::CLI
|
|||
if options[:with_dns_records]
|
||||
Resolv::DNS.open do |dns|
|
||||
dns.timeouts = 5
|
||||
other_domains = dns.getresources(@email_domain_block.domain, Resolv::DNS::Resource::IN::MX).to_a
|
||||
other_domains = dns.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }.compact_blank
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ require_relative 'base'
|
|||
module Mastodon::CLI
|
||||
class Feeds < Base
|
||||
include Redisable
|
||||
include DatabaseHelper
|
||||
|
||||
option :all, type: :boolean, default: false
|
||||
option :concurrency, type: :numeric, default: 5, aliases: [:c]
|
||||
|
@ -59,6 +60,38 @@ module Mastodon::CLI
|
|||
say('OK', :green)
|
||||
end
|
||||
|
||||
desc 'vacuum', 'Remove home feeds of inactive users from Redis'
|
||||
long_desc <<-LONG_DESC
|
||||
Running this task should not be needed in most cases, as Mastodon will
|
||||
automatically clean up feeds from inactive accounts every day.
|
||||
|
||||
However, this task is more aggressive in order to clean up feeds that
|
||||
may have been missed because of bugs or database mishaps.
|
||||
LONG_DESC
|
||||
def vacuum
|
||||
with_read_replica do
|
||||
say('Deleting orphaned home feeds…')
|
||||
redis.scan_each(match: 'feed:home:*').each_slice(1000) do |keys|
|
||||
ids = keys.map { |key| key.split(':')[2] }.compact_blank
|
||||
|
||||
known_ids = User.confirmed.signed_in_recently.where(account_id: ids).pluck(:account_id)
|
||||
|
||||
keys_to_delete = keys.filter { |key| known_ids.exclude?(key.split(':')[2]&.to_i) }
|
||||
redis.del(keys_to_delete)
|
||||
end
|
||||
|
||||
say('Deleting orphaned list feeds…')
|
||||
redis.scan_each(match: 'feed:list:*').each_slice(1000) do |keys|
|
||||
ids = keys.map { |key| key.split(':')[2] }.compact_blank
|
||||
|
||||
known_ids = List.where(account_id: User.confirmed.signed_in_recently.select(:account_id)).where(id: ids).pluck(:id)
|
||||
|
||||
keys_to_delete = keys.filter { |key| known_ids.exclude?(key.split(':')[2]&.to_i) }
|
||||
redis.del(keys_to_delete)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def active_user_accounts
|
||||
|
|
|
@ -43,6 +43,7 @@ module Mastodon::CLI
|
|||
class BulkImport < ApplicationRecord; end
|
||||
class SoftwareUpdate < ApplicationRecord; end
|
||||
class SeveredRelationship < ApplicationRecord; end
|
||||
class TagFollow < ApplicationRecord; end
|
||||
|
||||
class DomainBlock < ApplicationRecord
|
||||
enum :severity, { silence: 0, suspend: 1, noop: 2 }
|
||||
|
@ -102,6 +103,7 @@ module Mastodon::CLI
|
|||
owned_classes << AccountIdentityProof if db_table_exists?(:account_identity_proofs)
|
||||
owned_classes << Appeal if db_table_exists?(:appeals)
|
||||
owned_classes << BulkImport if db_table_exists?(:bulk_imports)
|
||||
owned_classes << TagFollow if db_table_exists?(:tag_follows)
|
||||
|
||||
owned_classes.each do |klass|
|
||||
klass.where(account_id: other_account.id).find_each do |record|
|
||||
|
|
|
@ -31,7 +31,7 @@ module Mastodon
|
|||
end
|
||||
|
||||
def patch
|
||||
1
|
||||
2
|
||||
end
|
||||
|
||||
def default_prerelease
|
||||
|
|
|
@ -52,6 +52,7 @@ module Paperclip
|
|||
# implement. If cropping ever becomes necessary for other situations, this will
|
||||
# need to be expanded.
|
||||
crop_width = crop_height = [target_width, target_height].min if @target_geometry&.square?
|
||||
crop_width = crop_height = "'min(iw,ih)'" if crop_width == 'ih'
|
||||
|
||||
filter = begin
|
||||
if @crop
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue