Table,
UpdatedAt
} from 'sequelize-typescript'
-import { buildRemoteVideoBaseUrl } from '@server/helpers/activitypub'
import { afterCommitIfTransaction } from '@server/helpers/database-utils'
-import { MThumbnail, MThumbnailVideo, MVideoAccountLight } from '@server/types/models'
+import { MThumbnail, MThumbnailVideo, MVideo } from '@server/types/models'
+import { AttributesOnly } from '@shared/typescript-utils'
import { ThumbnailType } from '../../../shared/models/videos/thumbnail.type'
import { logger } from '../../helpers/logger'
import { CONFIG } from '../../initializers/config'
}
]
})
-export class ThumbnailModel extends Model {
+export class ThumbnailModel extends Model<Partial<AttributesOnly<ThumbnailModel>>> {
@AllowNull(false)
@Column
return ThumbnailModel.findOne(query)
}
- getFileUrl (video: MVideoAccountLight) {
+ static buildPath (type: ThumbnailType, filename: string) {
+ const directory = ThumbnailModel.types[type].directory
+
+ return join(directory, filename)
+ }
+
+ getFileUrl (video: MVideo) {
const staticPath = ThumbnailModel.types[this.type].staticPath + this.filename
if (video.isOwned()) return WEBSERVER.URL + staticPath
- if (this.fileUrl) return this.fileUrl
- // Fallback if we don't have a file URL
- return buildRemoteVideoBaseUrl(video, staticPath)
+ return this.fileUrl
}
getPath () {
- const directory = ThumbnailModel.types[this.type].directory
- return join(directory, this.filename)
+ return ThumbnailModel.buildPath(this.type, this.filename)
}
getPreviousPath () {
- const directory = ThumbnailModel.types[this.type].directory
- return join(directory, this.previousThumbnailFilename)
+ return ThumbnailModel.buildPath(this.type, this.previousThumbnailFilename)
}
removeThumbnail () {