1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 18:29:27 +02:00

Add ability for uploaders to schedule video update

This commit is contained in:
Chocobozzz 2018-06-14 18:06:56 +02:00
parent bf079b7bfd
commit 2baea0c77c
No known key found for this signature in database
GPG key ID: 583A612D890159BE
21 changed files with 469 additions and 22 deletions

View file

@ -174,7 +174,11 @@ async function getUserVideos (req: express.Request, res: express.Response, next:
false // Display my NSFW videos
)
const additionalAttributes = { waitTranscoding: true, state: true }
const additionalAttributes = {
waitTranscoding: true,
state: true,
scheduledUpdate: true
}
return res.json(getFormattedObjects(resultList.data, resultList.total, { additionalAttributes }))
}

View file

@ -52,6 +52,7 @@ import { rateVideoRouter } from './rate'
import { VideoFilter } from '../../../../shared/models/videos/video-query.type'
import { VideoSortField } from '../../../../client/src/app/shared/video/sort-field.type'
import { createReqFiles, isNSFWHidden } from '../../../helpers/express-utils'
import { ScheduleVideoUpdateModel } from '../../../models/video/schedule-video-update'
const videosRouter = express.Router()
@ -231,6 +232,7 @@ async function addVideo (req: express.Request, res: express.Response) {
video.VideoFiles = [ videoFile ]
// Create tags
if (videoInfo.tags !== undefined) {
const tagInstances = await TagModel.findOrCreateTags(videoInfo.tags, t)
@ -238,6 +240,15 @@ async function addVideo (req: express.Request, res: express.Response) {
video.Tags = tagInstances
}
// Schedule an update in the future?
if (videoInfo.scheduleUpdate) {
await ScheduleVideoUpdateModel.create({
videoId: video.id,
updateAt: videoInfo.scheduleUpdate.updateAt,
privacy: videoInfo.scheduleUpdate.privacy || null
}, { transaction: t })
}
await federateVideoIfNeeded(video, true, t)
logger.info('Video with name %s and uuid %s created.', videoInfo.name, videoCreated.uuid)
@ -324,6 +335,15 @@ async function updateVideo (req: express.Request, res: express.Response) {
if (wasPrivateVideo === false) await changeVideoChannelShare(videoInstanceUpdated, oldVideoChannel, t)
}
// Schedule an update in the future?
if (videoInfoToUpdate.scheduleUpdate) {
await ScheduleVideoUpdateModel.upsert({
videoId: videoInstanceUpdated.id,
updateAt: videoInfoToUpdate.scheduleUpdate.updateAt,
privacy: videoInfoToUpdate.scheduleUpdate.privacy || null
}, { transaction: t })
}
const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE
await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo)
})