X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fthumbnail.ts;h=f1952dcc1d19f647616526b96b39e33687af9d19;hb=282e61e6c11f79e919c543871783fe1a00298d18;hp=ec945893f6a408e6637411f016152b3bf1f68d86;hpb=3acc50844047a37698f0618fa235c138e386a053;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/thumbnail.ts b/server/models/video/thumbnail.ts index ec945893f..f1952dcc1 100644 --- a/server/models/video/thumbnail.ts +++ b/server/models/video/thumbnail.ts @@ -1,6 +1,6 @@ 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' @@ -42,7 +42,11 @@ export class ThumbnailModel extends Model { @AllowNull(true) @Column - url: string + fileUrl: string + + @AllowNull(true) + @Column + automaticallyGenerated: boolean @ForeignKey(() => VideoModel) @Column @@ -83,12 +87,12 @@ export class ThumbnailModel extends Model { [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 @@ -96,21 +100,33 @@ export class ThumbnailModel extends Model { .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' } - getUrl () { - if (this.url) return this.url + getFileUrl () { + if (this.fileUrl) return this.fileUrl const staticPath = ThumbnailModel.types[this.type].staticPath return WEBSERVER.URL + staticPath + this.filename } - removeThumbnail () { + getPath () { const directory = ThumbnailModel.types[this.type].directory - const thumbnailPath = join(directory, this.filename) + return join(directory, this.filename) + } - return remove(thumbnailPath) + removeThumbnail () { + return remove(this.getPath()) } }