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
|
2024-02-27 19:53:48 +00:00
|
|
|
self.priority = 50
|
|
|
|
|
2024-02-27 16:25:40 +00:00
|
|
|
def perform
|
|
|
|
ActivityPub::Fediblock.find_each do |fediblock|
|
|
|
|
fediblock.process!
|
2024-02-27 19:40:08 +00:00
|
|
|
|
2024-02-28 18:47:40 +00:00
|
|
|
hostnames_added = fediblock.hostnames - fediblock.hostnames_was
|
2024-02-27 19:40:08 +00:00
|
|
|
|
|
|
|
# No hacer nada si no cambió con respecto a la versión anterior
|
2024-02-28 18:47:40 +00:00
|
|
|
next if hostnames_added.empty?
|
2024-02-27 19:40:08 +00:00
|
|
|
|
2024-02-28 18:47:40 +00:00
|
|
|
ActivityPub::FediblockUpdatedJob.perform_later(fediblock: fediblock, hostnames: hostnames_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
|