X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fvideos%2Findex.ts;h=b4cd67158100a18f0cb946014ff6988397807d87;hb=66dc59076413b9a4aa0899d3192b0bdf03ee654d;hp=c3d3acd26fb9cca844f2c2266465fed724d2b37a;hpb=b5c0e95544cec5a33cee3df41c1607d2a0cd5403;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index c3d3acd26..b4cd67158 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts @@ -3,7 +3,7 @@ import { extname, join } from 'path' import { VideoCreate, VideoPrivacy, VideoUpdate } from '../../../../shared' import { renamePromise } from '../../../helpers/core-utils' import { retryTransactionWrapper } from '../../../helpers/database-utils' -import { getVideoFileHeight } from '../../../helpers/ffmpeg-utils' +import { getVideoFileResolution } from '../../../helpers/ffmpeg-utils' import { processImage } from '../../../helpers/image-utils' import { logger } from '../../../helpers/logger' import { createReqFiles, getFormattedObjects, getServerActor, resetSequelizeInstance } from '../../../helpers/utils' @@ -20,7 +20,7 @@ import { VIDEO_PRIVACIES } from '../../../initializers' import { fetchRemoteVideoDescription, getVideoActivityPubUrl, shareVideoByServerAndChannel } from '../../../lib/activitypub' -import { sendCreateVideo, sendCreateViewToOrigin, sendCreateViewToVideoFollowers, sendUpdateVideo } from '../../../lib/activitypub/send' +import { sendCreateVideo, sendCreateView, sendUpdateVideo } from '../../../lib/activitypub/send' import { JobQueue } from '../../../lib/job-queue' import { Redis } from '../../../lib/redis' import { @@ -187,11 +187,11 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi const video = new VideoModel(videoData) video.url = getVideoActivityPubUrl(video) - const videoFileHeight = await getVideoFileHeight(videoPhysicalFile.path) + const { videoFileResolution } = await getVideoFileResolution(videoPhysicalFile.path) const videoFileData = { extname: extname(videoPhysicalFile.filename), - resolution: videoFileHeight, + resolution: videoFileResolution, size: videoPhysicalFile.size } const videoFile = new VideoFileModel(videoFileData) @@ -307,10 +307,17 @@ async function updateVideo (req: express.Request, res: express.Response) { if (videoInfoToUpdate.licence !== undefined) videoInstance.set('licence', videoInfoToUpdate.licence) if (videoInfoToUpdate.language !== undefined) videoInstance.set('language', videoInfoToUpdate.language) if (videoInfoToUpdate.nsfw !== undefined) videoInstance.set('nsfw', videoInfoToUpdate.nsfw) - if (videoInfoToUpdate.privacy !== undefined) videoInstance.set('privacy', parseInt(videoInfoToUpdate.privacy.toString(), 10)) if (videoInfoToUpdate.support !== undefined) videoInstance.set('support', videoInfoToUpdate.support) if (videoInfoToUpdate.description !== undefined) videoInstance.set('description', videoInfoToUpdate.description) if (videoInfoToUpdate.commentsEnabled !== undefined) videoInstance.set('commentsEnabled', videoInfoToUpdate.commentsEnabled) + if (videoInfoToUpdate.privacy !== undefined) { + const newPrivacy = parseInt(videoInfoToUpdate.privacy.toString(), 10) + videoInstance.set('privacy', newPrivacy) + + if (wasPrivateVideo === true && newPrivacy !== VideoPrivacy.PRIVATE) { + videoInstance.set('publishedAt', new Date()) + } + } const videoInstanceUpdated = await videoInstance.save(sequelizeOptions) @@ -365,11 +372,7 @@ async function viewVideo (req: express.Request, res: express.Response) { const serverAccount = await getServerActor() - if (videoInstance.isOwned()) { - await sendCreateViewToVideoFollowers(serverAccount, videoInstance, undefined) - } else { - await sendCreateViewToOrigin(serverAccount, videoInstance, undefined) - } + await sendCreateView(serverAccount, videoInstance, undefined) return res.status(204).end() } @@ -388,7 +391,7 @@ async function getVideoDescription (req: express.Request, res: express.Response) } async function listVideos (req: express.Request, res: express.Response, next: express.NextFunction) { - const resultList = await VideoModel.listForApi(req.query.start, req.query.count, req.query.sort) + const resultList = await VideoModel.listForApi(req.query.start, req.query.count, req.query.sort, req.query.filter) return res.json(getFormattedObjects(resultList.data, resultList.total)) } @@ -415,7 +418,7 @@ async function removeVideo (req: express.Request, res: express.Response) { } async function searchVideos (req: express.Request, res: express.Response, next: express.NextFunction) { - const resultList = await VideoModel.searchAndPopulateAccountAndServerAndTags( + const resultList = await VideoModel.searchAndPopulateAccountAndServer( req.query.search, req.query.start, req.query.count,