import { join } from 'path'
import { AfterDestroy, AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
-import { STATIC_PATHS, WEBSERVER } from '../../initializers/constants'
+import { LAZY_STATIC_PATHS, STATIC_PATHS, WEBSERVER } from '../../initializers/constants'
import { logger } from '../../helpers/logger'
import { remove } from 'fs-extra'
import { CONFIG } from '../../initializers/config'
@Column
fileUrl: string
+ @AllowNull(true)
+ @Column
+ automaticallyGenerated: boolean
+
@ForeignKey(() => VideoModel)
@Column
videoId: number
[ThumbnailType.PREVIEW]: {
label: 'preview',
directory: CONFIG.STORAGE.PREVIEWS_DIR,
- staticPath: STATIC_PATHS.PREVIEWS
+ staticPath: LAZY_STATIC_PATHS.PREVIEWS
}
}
@AfterDestroy
- static removeFilesAndSendDelete (instance: ThumbnailModel) {
+ static removeFiles (instance: ThumbnailModel) {
logger.info('Removing %s file %s.', ThumbnailModel.types[instance.type].label, instance.filename)
// Don't block the transaction
.catch(err => logger.error('Cannot remove thumbnail file %s.', instance.filename, err))
}
+ static loadByName (filename: string) {
+ const query = {
+ where: {
+ filename
+ }
+ }
+
+ return ThumbnailModel.findOne(query)
+ }
+
static generateDefaultPreviewName (videoUUID: string) {
return videoUUID + '.jpg'
}