2024-02-27 16:25:40 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class ActivityPub
|
2024-02-27 19:40:08 +00:00
|
|
|
# Se encarga de mantener las listas de bloqueo actualizadas. Luego de
|
|
|
|
# actualizar el listado de instancias, bloquea las instancias en cada
|
|
|
|
# sitio que tenga el fediblock habilitado.
|
2024-02-27 16:25:40 +00:00
|
|
|
class FediblockFetchJob < ApplicationJob
|
|
|
|
def perform
|
|
|
|
ActivityPub::Fediblock.find_each do |fediblock|
|
|
|
|
fediblock.process!
|
2024-02-27 19:40:08 +00:00
|
|
|
|
|
|
|
instances_added = fediblock.instances - fediblock.instances_was
|
|
|
|
|
|
|
|
# No hacer nada si no cambió con respecto a la versión anterior
|
|
|
|
next if instances_added.empty?
|
|
|
|
|
|
|
|
ActivityPub::FediblockUpdatedJob.perform_later(fediblock: fediblock, hostnames: instances_added)
|
2024-02-27 16:25:40 +00:00
|
|
|
rescue ActivityPub::Fediblock::FediblockDownloadError => e
|
|
|
|
ExceptionNotifier.notify_exception(e, data: { fediblock: fediblock.title })
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|