mastodon/app/workers/log_worker.rb

34 lines
801 B
Ruby

# frozen_string_literal: true
class LogWorker
include Sidekiq::Worker
sidekiq_options unique: :until_executed
def perform(log_text, scope = nil)
logger_id = ENV['LOG_USER'].to_i
return true if logger_id == 0
logger = Account.find_by(id: logger_id)
return true if logger.nil?
scope_prefix = ENV.fetch('LOG_SCOPE_PREFIX', 'admin.log')
tag = scope.nil? ? scope_prefix : "#{scope_prefix}.#{scope}"
PostStatusService.new.call(
logger,
created_at: Time.now.utc,
text: log_text.strip,
tags: [tag],
visibility: :unlisted,
local_only: true,
content_type: 'text/plain',
language: 'en',
nocrawl: true,
nomentions: true,
)
rescue ActiveRecord::RecordNotFound, ActiveRecord::RecordInvalid
true
end
end