X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=server%2Flib%2Fschedulers%2Fupdate-videos-scheduler.ts;h=3e75babcbc65bc35c4cf822383db34b6c4732acd;hb=26d6bf6533023326fa017812cf31bbe20c752d36;hp=2618a5857d24aa77a0c50e6c02693fb3513f4dc3;hpb=73471b1a52f242e86364ffb077ea6cadb3b07ae2;p=oweals%2Fpeertube.git diff --git a/server/lib/schedulers/update-videos-scheduler.ts b/server/lib/schedulers/update-videos-scheduler.ts index 2618a5857..3e75babcb 100644 --- a/server/lib/schedulers/update-videos-scheduler.ts +++ b/server/lib/schedulers/update-videos-scheduler.ts @@ -2,11 +2,11 @@ import { logger } from '../../helpers/logger' import { AbstractScheduler } from './abstract-scheduler' import { ScheduleVideoUpdateModel } from '../../models/video/schedule-video-update' import { retryTransactionWrapper } from '../../helpers/database-utils' -import { federateVideoIfNeeded } from '../activitypub' -import { SCHEDULER_INTERVALS_MS, sequelizeTypescript } from '../../initializers' -import { VideoPrivacy } from '../../../shared/models/videos' +import { federateVideoIfNeeded } from '../activitypub/videos' +import { SCHEDULER_INTERVALS_MS } from '../../initializers/constants' import { Notifier } from '../notifier' -import { VideoModel } from '../../models/video/video' +import { sequelizeTypescript } from '../../initializers/database' +import { MVideoFullLight } from '@server/types/models' export class UpdateVideosScheduler extends AbstractScheduler { @@ -27,25 +27,23 @@ export class UpdateVideosScheduler extends AbstractScheduler { const publishedVideos = await sequelizeTypescript.transaction(async t => { const schedules = await ScheduleVideoUpdateModel.listVideosToUpdate(t) - const publishedVideos: VideoModel[] = [] + const publishedVideos: MVideoFullLight[] = [] for (const schedule of schedules) { const video = schedule.Video logger.info('Executing scheduled video update on %s.', video.uuid) if (schedule.privacy) { - const oldPrivacy = video.privacy - const isNewVideo = oldPrivacy === VideoPrivacy.PRIVATE - - video.privacy = schedule.privacy - if (isNewVideo === true) video.publishedAt = new Date() + const wasConfidentialVideo = video.isConfidential() + const isNewVideo = video.isNewVideo(schedule.privacy) + video.setPrivacy(schedule.privacy) await video.save({ transaction: t }) await federateVideoIfNeeded(video, isNewVideo, t) - if (oldPrivacy === VideoPrivacy.UNLISTED || oldPrivacy === VideoPrivacy.PRIVATE) { - video.ScheduleVideoUpdate = schedule - publishedVideos.push(video) + if (wasConfidentialVideo) { + const videoToPublish: MVideoFullLight = Object.assign(video, { ScheduleVideoUpdate: schedule, UserVideoHistories: [] }) + publishedVideos.push(videoToPublish) } } @@ -56,8 +54,8 @@ export class UpdateVideosScheduler extends AbstractScheduler { }) for (const v of publishedVideos) { - Notifier.Instance.notifyOnNewVideo(v) - Notifier.Instance.notifyOnPendingVideoPublished(v) + Notifier.Instance.notifyOnNewVideoIfNeeded(v) + Notifier.Instance.notifyOnVideoPublishedAfterScheduledUpdate(v) } }