diff options
Diffstat (limited to 'server/controllers/api')
-rw-r--r-- | server/controllers/api/videos/index.ts | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index 4dd09917b..964db151d 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts | |||
@@ -10,7 +10,8 @@ import { | |||
10 | VIDEO_CATEGORIES, | 10 | VIDEO_CATEGORIES, |
11 | VIDEO_LICENCES, | 11 | VIDEO_LICENCES, |
12 | VIDEO_LANGUAGES, | 12 | VIDEO_LANGUAGES, |
13 | VIDEO_PRIVACIES | 13 | VIDEO_PRIVACIES, |
14 | VIDEO_MIMETYPE_EXT | ||
14 | } from '../../../initializers' | 15 | } from '../../../initializers' |
15 | import { | 16 | import { |
16 | addEventToRemoteVideo, | 17 | addEventToRemoteVideo, |
@@ -50,6 +51,7 @@ import { abuseVideoRouter } from './abuse' | |||
50 | import { blacklistRouter } from './blacklist' | 51 | import { blacklistRouter } from './blacklist' |
51 | import { rateVideoRouter } from './rate' | 52 | import { rateVideoRouter } from './rate' |
52 | import { videoChannelRouter } from './channel' | 53 | import { videoChannelRouter } from './channel' |
54 | import { getActivityPubUrl } from '../../../helpers/activitypub' | ||
53 | 55 | ||
54 | const videosRouter = express.Router() | 56 | const videosRouter = express.Router() |
55 | 57 | ||
@@ -59,19 +61,18 @@ const storage = multer.diskStorage({ | |||
59 | cb(null, CONFIG.STORAGE.VIDEOS_DIR) | 61 | cb(null, CONFIG.STORAGE.VIDEOS_DIR) |
60 | }, | 62 | }, |
61 | 63 | ||
62 | filename: (req, file, cb) => { | 64 | filename: async (req, file, cb) => { |
63 | let extension = '' | 65 | const extension = VIDEO_MIMETYPE_EXT[file.mimetype] |
64 | if (file.mimetype === 'video/webm') extension = 'webm' | 66 | let randomString = '' |
65 | else if (file.mimetype === 'video/mp4') extension = 'mp4' | 67 | |
66 | else if (file.mimetype === 'video/ogg') extension = 'ogv' | 68 | try { |
67 | generateRandomString(16) | 69 | randomString = await generateRandomString(16) |
68 | .then(randomString => { | 70 | } catch (err) { |
69 | cb(null, randomString + '.' + extension) | 71 | logger.error('Cannot generate random string for file name.', err) |
70 | }) | 72 | randomString = 'fake-random-string' |
71 | .catch(err => { | 73 | } |
72 | logger.error('Cannot generate random string for file name.', err) | 74 | |
73 | throw err | 75 | cb(null, randomString + '.' + extension) |
74 | }) | ||
75 | } | 76 | } |
76 | }) | 77 | }) |
77 | 78 | ||
@@ -190,6 +191,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi | |||
190 | channelId: res.locals.videoChannel.id | 191 | channelId: res.locals.videoChannel.id |
191 | } | 192 | } |
192 | const video = db.Video.build(videoData) | 193 | const video = db.Video.build(videoData) |
194 | video.url = getActivityPubUrl('video', video.uuid) | ||
193 | 195 | ||
194 | const videoFilePath = join(CONFIG.STORAGE.VIDEOS_DIR, videoPhysicalFile.filename) | 196 | const videoFilePath = join(CONFIG.STORAGE.VIDEOS_DIR, videoPhysicalFile.filename) |
195 | const videoFileHeight = await getVideoFileHeight(videoFilePath) | 197 | const videoFileHeight = await getVideoFileHeight(videoFilePath) |