X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-interface.ts;h=dd457bb00620ff476573fc74a1b707ba50c22605;hb=51c443dbe0284c5ec54033be06f554ec37397bce;hp=6a3db4f3efcf5957055054a81842a88a1c276b87;hpb=14d3270f363245d2c83fcc2ac109e39743b5627e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-interface.ts b/server/models/video/video-interface.ts index 6a3db4f3e..dd457bb00 100644 --- a/server/models/video/video-interface.ts +++ b/server/models/video/video-interface.ts @@ -1,24 +1,27 @@ import * as Sequelize from 'sequelize' import * as Promise from 'bluebird' -import { AuthorInstance } from './author-interface' import { TagAttributes, TagInstance } from './tag-interface' import { VideoFileAttributes, VideoFileInstance } from './video-file-interface' // Don't use barrel, import just what we need -import { Video as FormattedVideo } from '../../../shared/models/videos/video.model' +import { + Video as FormattedVideo, + VideoDetails as FormattedDetailsVideo +} from '../../../shared/models/videos/video.model' import { RemoteVideoUpdateData } from '../../../shared/models/pods/remote-video/remote-video-update-request.model' import { RemoteVideoCreateData } from '../../../shared/models/pods/remote-video/remote-video-create-request.model' import { ResultList } from '../../../shared/models/result-list.model' +import { VideoChannelInstance } from './video-channel-interface' export namespace VideoMethods { export type GetThumbnailName = (this: VideoInstance) => string export type GetPreviewName = (this: VideoInstance) => string export type IsOwned = (this: VideoInstance) => boolean export type ToFormattedJSON = (this: VideoInstance) => FormattedVideo + export type ToFormattedDetailsJSON = (this: VideoInstance) => FormattedDetailsVideo export type GetOriginalFile = (this: VideoInstance) => VideoFileInstance - export type GenerateMagnetUri = (this: VideoInstance, videoFile: VideoFileInstance) => string export type GetTorrentFileName = (this: VideoInstance, videoFile: VideoFileInstance) => string export type GetVideoFilename = (this: VideoInstance, videoFile: VideoFileInstance) => string export type CreatePreview = (this: VideoInstance, videoFile: VideoFileInstance) => Promise @@ -32,6 +35,9 @@ export namespace VideoMethods { export type OptimizeOriginalVideofile = (this: VideoInstance) => Promise export type TranscodeOriginalVideofile = (this: VideoInstance, resolution: number) => Promise export type GetOriginalFileHeight = (this: VideoInstance) => Promise + export type GetEmbedPath = (this: VideoInstance) => string + export type GetThumbnailPath = (this: VideoInstance) => string + export type GetPreviewPath = (this: VideoInstance) => string // Return thumbnail name export type GenerateThumbnailFromData = (video: VideoInstance, thumbnailData: string) => Promise @@ -50,8 +56,8 @@ export namespace VideoMethods { ) => Promise< ResultList > export type Load = (id: number) => Promise - export type LoadByUUID = (uuid: string) => Promise - export type LoadByHostAndUUID = (fromHost: string, uuid: string) => Promise + export type LoadByUUID = (uuid: string, t?: Sequelize.Transaction) => Promise + export type LoadByHostAndUUID = (fromHost: string, uuid: string, t?: Sequelize.Transaction) => Promise export type LoadAndPopulateAuthor = (id: number) => Promise export type LoadAndPopulateAuthorAndPodAndTags = (id: number) => Promise export type LoadByUUIDAndPopulateAuthorAndPodAndTags = (uuid: string) => Promise @@ -92,7 +98,9 @@ export interface VideoAttributes { dislikes?: number remote: boolean - Author?: AuthorInstance + channelId?: number + + VideoChannel?: VideoChannelInstance Tags?: TagInstance[] VideoFiles?: VideoFileInstance[] } @@ -105,9 +113,10 @@ export interface VideoInstance extends VideoClass, VideoAttributes, Sequelize.In createThumbnail: VideoMethods.CreateThumbnail createTorrentAndSetInfoHash: VideoMethods.CreateTorrentAndSetInfoHash getOriginalFile: VideoMethods.GetOriginalFile - generateMagnetUri: VideoMethods.GenerateMagnetUri getPreviewName: VideoMethods.GetPreviewName + getPreviewPath: VideoMethods.GetPreviewPath getThumbnailName: VideoMethods.GetThumbnailName + getThumbnailPath: VideoMethods.GetThumbnailPath getTorrentFileName: VideoMethods.GetTorrentFileName getVideoFilename: VideoMethods.GetVideoFilename getVideoFilePath: VideoMethods.GetVideoFilePath @@ -118,10 +127,12 @@ export interface VideoInstance extends VideoClass, VideoAttributes, Sequelize.In removeTorrent: VideoMethods.RemoveTorrent toAddRemoteJSON: VideoMethods.ToAddRemoteJSON toFormattedJSON: VideoMethods.ToFormattedJSON + toFormattedDetailsJSON: VideoMethods.ToFormattedDetailsJSON toUpdateRemoteJSON: VideoMethods.ToUpdateRemoteJSON optimizeOriginalVideofile: VideoMethods.OptimizeOriginalVideofile transcodeOriginalVideofile: VideoMethods.TranscodeOriginalVideofile getOriginalFileHeight: VideoMethods.GetOriginalFileHeight + getEmbedPath: VideoMethods.GetEmbedPath setTags: Sequelize.HasManySetAssociationsMixin addVideoFile: Sequelize.HasManyAddAssociationMixin