1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 17:59:37 +02:00

Begin to add avatar to actors

This commit is contained in:
Chocobozzz 2017-12-29 19:10:13 +01:00
parent 8b0d42ee37
commit c5911fd347
No known key found for this signature in database
GPG key ID: 583A612D890159BE
41 changed files with 498 additions and 177 deletions

View file

@ -1,8 +1,9 @@
import * as express from 'express'
import * as multer from 'multer'
import { Model } from 'sequelize-typescript'
import { ResultList } from '../../shared'
import { VideoResolution } from '../../shared/models/videos'
import { CONFIG, REMOTE_SCHEME } from '../initializers'
import { CONFIG, REMOTE_SCHEME, VIDEO_MIMETYPE_EXT } from '../initializers'
import { UserModel } from '../models/account/user'
import { ActorModel } from '../models/activitypub/actor'
import { ApplicationModel } from '../models/application/application'
@ -26,6 +27,30 @@ function badRequest (req: express.Request, res: express.Response, next: express.
return res.type('json').status(400).end()
}
function createReqFiles (fieldName: string, storageDir: string, mimeTypes: { [ id: string ]: string }) {
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, storageDir)
},
filename: async (req, file, cb) => {
const extension = mimeTypes[file.mimetype]
let randomString = ''
try {
randomString = await generateRandomString(16)
} catch (err) {
logger.error('Cannot generate random string for file name.', err)
randomString = 'fake-random-string'
}
cb(null, randomString + extension)
}
})
return multer({ storage }).fields([{ name: fieldName, maxCount: 1 }])
}
async function generateRandomString (size: number) {
const raw = await pseudoRandomBytesPromise(size)
@ -122,5 +147,6 @@ export {
resetSequelizeInstance,
getServerActor,
SortType,
getHostWithPort
getHostWithPort,
createReqFiles
}