Merge remote-tracking branch 'parent/main' into kb_migration
This commit is contained in:
commit
7a4dc84202
286 changed files with 7203 additions and 2880 deletions
|
@ -268,11 +268,11 @@ class DeleteAccountService < BaseService
|
|||
end
|
||||
|
||||
def delete_actor!
|
||||
ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
|
||||
ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes, limit: 1_000) do |inbox_url|
|
||||
[delete_actor_json, @account.id, inbox_url]
|
||||
end
|
||||
|
||||
ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url|
|
||||
ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes, limit: 1_000) do |inbox_url|
|
||||
[delete_actor_json, @account.id, inbox_url]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -88,7 +88,7 @@ class RemoveStatusService < BaseService
|
|||
|
||||
status_reach_finder = StatusReachFinder.new(@status, unsafe: true)
|
||||
|
||||
ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes) do |inbox_url|
|
||||
ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes, limit: 1_000) do |inbox_url|
|
||||
[signed_activity_json, @account.id, inbox_url]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,13 +31,13 @@ class SuspendAccountService < BaseService
|
|||
# counterpart to this operation, i.e. you can't then force a remote
|
||||
# account to re-follow you, so this part is not reversible.
|
||||
|
||||
follows = Follow.where(account: @account).to_a
|
||||
Follow.where(account: @account).find_in_batches do |follows|
|
||||
ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
|
||||
[Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
|
||||
end
|
||||
|
||||
ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
|
||||
[Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
|
||||
follows.each(&:destroy)
|
||||
end
|
||||
|
||||
follows.each(&:destroy)
|
||||
end
|
||||
|
||||
def distribute_update_actor!
|
||||
|
@ -45,7 +45,7 @@ class SuspendAccountService < BaseService
|
|||
|
||||
account_reach_finder = AccountReachFinder.new(@account)
|
||||
|
||||
ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
|
||||
ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
|
||||
[signed_activity_json, @account.id, inbox_url]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,19 +6,29 @@ class TranslateStatusService < BaseService
|
|||
include FormattingHelper
|
||||
|
||||
def call(status, target_language)
|
||||
raise Mastodon::NotPermittedError unless status.translatable?
|
||||
|
||||
@status = status
|
||||
@content = status_content_format(@status)
|
||||
@target_language = target_language
|
||||
|
||||
raise Mastodon::NotPermittedError unless permitted?
|
||||
|
||||
Rails.cache.fetch("translations/#{@status.language}/#{@target_language}/#{content_hash}", expires_in: CACHE_TTL) { translation_backend.translate(@content, @status.language, @target_language) }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def translation_backend
|
||||
TranslationService.configured
|
||||
@translation_backend ||= TranslationService.configured
|
||||
end
|
||||
|
||||
def permitted?
|
||||
return false unless @status.distributable? && @status.content.present? && TranslationService.configured?
|
||||
|
||||
languages[@status.language]&.include?(@target_language)
|
||||
end
|
||||
|
||||
def languages
|
||||
Rails.cache.fetch('translation_service/languages', expires_in: 7.days, race_condition_ttl: 1.hour) { TranslationService.configured.languages }
|
||||
end
|
||||
|
||||
def content_hash
|
||||
|
|
|
@ -41,7 +41,7 @@ class UnsuspendAccountService < BaseService
|
|||
|
||||
account_reach_finder = AccountReachFinder.new(@account)
|
||||
|
||||
ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
|
||||
ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
|
||||
[signed_activity_json, @account.id, inbox_url]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ class UpdateAccountService < BaseService
|
|||
def authorize_all_follow_requests(account)
|
||||
follow_requests = FollowRequest.where(target_account: account)
|
||||
follow_requests = follow_requests.preload(:account).select { |req| !req.account.silenced? }
|
||||
AuthorizeFollowWorker.push_bulk(follow_requests) do |req|
|
||||
AuthorizeFollowWorker.push_bulk(follow_requests, limit: 1_000) do |req|
|
||||
[req.account_id, req.target_account_id]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue