X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fjob-queue%2Fhandlers%2Factivitypub-refresher.ts;h=c09b1bcc8f910addfdc0035df7a049dee2f23e76;hb=7d9ba5c08999c6482f0bc5e0c09c6f55b7724090;hp=454b975fefaeb89dcb5416c5ae08acda995b54bc;hpb=b718fd22374d64534bcfe69932cf562894abed6a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/job-queue/handlers/activitypub-refresher.ts b/server/lib/job-queue/handlers/activitypub-refresher.ts index 454b975fe..c09b1bcc8 100644 --- a/server/lib/job-queue/handlers/activitypub-refresher.ts +++ b/server/lib/job-queue/handlers/activitypub-refresher.ts @@ -1,13 +1,12 @@ import * as Bull from 'bull' +import { refreshVideoPlaylistIfNeeded } from '@server/lib/activitypub/playlist' +import { RefreshPayload } from '@shared/models' import { logger } from '../../../helpers/logger' import { fetchVideoByUrl } from '../../../helpers/video' -import { refreshVideoIfNeeded, refreshActorIfNeeded } from '../../activitypub' -import { ActorModel } from '../../../models/activitypub/actor' - -export type RefreshPayload = { - type: 'video' | 'actor' - url: string -} +import { ActorModel } from '../../../models/actor/actor' +import { VideoPlaylistModel } from '../../../models/video/video-playlist' +import { refreshActorIfNeeded } from '../../activitypub/actor' +import { refreshVideoIfNeeded } from '../../activitypub/videos' async function refreshAPObject (job: Bull.Job) { const payload = job.data as RefreshPayload @@ -15,13 +14,13 @@ async function refreshAPObject (job: Bull.Job) { logger.info('Processing AP refresher in job %d for %s.', job.id, payload.url) if (payload.type === 'video') return refreshVideo(payload.url) + if (payload.type === 'video-playlist') return refreshVideoPlaylist(payload.url) if (payload.type === 'actor') return refreshActor(payload.url) } // --------------------------------------------------------------------------- export { - refreshActor, refreshAPObject } @@ -50,5 +49,12 @@ async function refreshActor (actorUrl: string) { if (actor) { await refreshActorIfNeeded(actor, fetchType) } +} +async function refreshVideoPlaylist (playlistUrl: string) { + const playlist = await VideoPlaylistModel.loadByUrlAndPopulateAccount(playlistUrl) + + if (playlist) { + await refreshVideoPlaylistIfNeeded(playlist) + } }