]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/video/thumbnail.ts
Add playlist search option and search input for add-to-video-playlist dropdown
[github/Chocobozzz/PeerTube.git] / server / models / video / thumbnail.ts
index b767a687429491104fe593babfa81b89676cf5b2..e68a6711fe637aa996cc6f512fae174a0c0cb0fb 100644 (file)
@@ -1,6 +1,18 @@
 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 {
+  AfterDestroy,
+  AllowNull,
+  BelongsTo,
+  Column,
+  CreatedAt,
+  DataType,
+  Default,
+  ForeignKey,
+  Model,
+  Table,
+  UpdatedAt
+} from 'sequelize-typescript'
+import { CONSTRAINTS_FIELDS, LAZY_STATIC_PATHS, STATIC_PATHS, WEBSERVER } from '../../initializers/constants'
 import { logger } from '../../helpers/logger'
 import { remove } from 'fs-extra'
 import { CONFIG } from '../../initializers/config'
@@ -41,7 +53,7 @@ export class ThumbnailModel extends Model<ThumbnailModel> {
   type: ThumbnailType
 
   @AllowNull(true)
-  @Column
+  @Column(DataType.STRING(CONSTRAINTS_FIELDS.COMMONS.URL.max))
   fileUrl: string
 
   @AllowNull(true)
@@ -87,7 +99,7 @@ export class ThumbnailModel extends Model<ThumbnailModel> {
     [ThumbnailType.PREVIEW]: {
       label: 'preview',
       directory: CONFIG.STORAGE.PREVIEWS_DIR,
-      staticPath: STATIC_PATHS.PREVIEWS
+      staticPath: LAZY_STATIC_PATHS.PREVIEWS
     }
   }
 
@@ -100,6 +112,16 @@ export class ThumbnailModel extends Model<ThumbnailModel> {
             .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'
   }