diff options
Diffstat (limited to 'server/models/video/video-interface.ts')
-rw-r--r-- | server/models/video/video-interface.ts | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/server/models/video/video-interface.ts b/server/models/video/video-interface.ts index cfe65f9aa..e62e25a82 100644 --- a/server/models/video/video-interface.ts +++ b/server/models/video/video-interface.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import * as Promise from 'bluebird' | 2 | import * as Bluebird from 'bluebird' |
3 | 3 | ||
4 | import { TagAttributes, TagInstance } from './tag-interface' | 4 | import { TagAttributes, TagInstance } from './tag-interface' |
5 | import { VideoFileAttributes, VideoFileInstance } from './video-file-interface' | 5 | import { VideoFileAttributes, VideoFileInstance } from './video-file-interface' |
@@ -13,6 +13,7 @@ import { RemoteVideoUpdateData } from '../../../shared/models/pods/remote-video/ | |||
13 | import { RemoteVideoCreateData } from '../../../shared/models/pods/remote-video/remote-video-create-request.model' | 13 | import { RemoteVideoCreateData } from '../../../shared/models/pods/remote-video/remote-video-create-request.model' |
14 | import { ResultList } from '../../../shared/models/result-list.model' | 14 | import { ResultList } from '../../../shared/models/result-list.model' |
15 | import { VideoChannelInstance } from './video-channel-interface' | 15 | import { VideoChannelInstance } from './video-channel-interface' |
16 | import { VideoTorrentObject } from '../../../shared/models/activitypub/objects/video-torrent-object' | ||
16 | 17 | ||
17 | export namespace VideoMethods { | 18 | export namespace VideoMethods { |
18 | export type GetThumbnailName = (this: VideoInstance) => string | 19 | export type GetThumbnailName = (this: VideoInstance) => string |
@@ -29,8 +30,7 @@ export namespace VideoMethods { | |||
29 | export type GetVideoFilePath = (this: VideoInstance, videoFile: VideoFileInstance) => string | 30 | export type GetVideoFilePath = (this: VideoInstance, videoFile: VideoFileInstance) => string |
30 | export type CreateTorrentAndSetInfoHash = (this: VideoInstance, videoFile: VideoFileInstance) => Promise<void> | 31 | export type CreateTorrentAndSetInfoHash = (this: VideoInstance, videoFile: VideoFileInstance) => Promise<void> |
31 | 32 | ||
32 | export type ToAddRemoteJSON = (this: VideoInstance) => Promise<RemoteVideoCreateData> | 33 | export type ToActivityPubObject = (this: VideoInstance) => VideoTorrentObject |
33 | export type ToUpdateRemoteJSON = (this: VideoInstance) => RemoteVideoUpdateData | ||
34 | 34 | ||
35 | export type OptimizeOriginalVideofile = (this: VideoInstance) => Promise<void> | 35 | export type OptimizeOriginalVideofile = (this: VideoInstance) => Promise<void> |
36 | export type TranscodeOriginalVideofile = (this: VideoInstance, resolution: number) => Promise<void> | 36 | export type TranscodeOriginalVideofile = (this: VideoInstance, resolution: number) => Promise<void> |
@@ -40,31 +40,35 @@ export namespace VideoMethods { | |||
40 | export type GetPreviewPath = (this: VideoInstance) => string | 40 | export type GetPreviewPath = (this: VideoInstance) => string |
41 | export type GetDescriptionPath = (this: VideoInstance) => string | 41 | export type GetDescriptionPath = (this: VideoInstance) => string |
42 | export type GetTruncatedDescription = (this: VideoInstance) => string | 42 | export type GetTruncatedDescription = (this: VideoInstance) => string |
43 | export type GetCategoryLabel = (this: VideoInstance) => string | ||
44 | export type GetLicenceLabel = (this: VideoInstance) => string | ||
45 | export type GetLanguageLabel = (this: VideoInstance) => string | ||
43 | 46 | ||
44 | // Return thumbnail name | 47 | // Return thumbnail name |
45 | export type GenerateThumbnailFromData = (video: VideoInstance, thumbnailData: string) => Promise<string> | 48 | export type GenerateThumbnailFromData = (video: VideoInstance, thumbnailData: string) => Promise<string> |
46 | 49 | ||
47 | export type List = () => Promise<VideoInstance[]> | 50 | export type List = () => Bluebird<VideoInstance[]> |
48 | export type ListOwnedAndPopulateAuthorAndTags = () => Promise<VideoInstance[]> | 51 | export type ListOwnedAndPopulateAccountAndTags = () => Bluebird<VideoInstance[]> |
49 | export type ListOwnedByAuthor = (author: string) => Promise<VideoInstance[]> | 52 | export type ListOwnedByAccount = (account: string) => Bluebird<VideoInstance[]> |
50 | 53 | ||
51 | export type ListForApi = (start: number, count: number, sort: string) => Promise< ResultList<VideoInstance> > | 54 | export type ListForApi = (start: number, count: number, sort: string) => Bluebird< ResultList<VideoInstance> > |
52 | export type ListUserVideosForApi = (userId: number, start: number, count: number, sort: string) => Promise< ResultList<VideoInstance> > | 55 | export type ListUserVideosForApi = (userId: number, start: number, count: number, sort: string) => Bluebird< ResultList<VideoInstance> > |
53 | export type SearchAndPopulateAuthorAndPodAndTags = ( | 56 | export type SearchAndPopulateAccountAndPodAndTags = ( |
54 | value: string, | 57 | value: string, |
55 | field: string, | 58 | field: string, |
56 | start: number, | 59 | start: number, |
57 | count: number, | 60 | count: number, |
58 | sort: string | 61 | sort: string |
59 | ) => Promise< ResultList<VideoInstance> > | 62 | ) => Bluebird< ResultList<VideoInstance> > |
60 | 63 | ||
61 | export type Load = (id: number) => Promise<VideoInstance> | 64 | export type Load = (id: number) => Bluebird<VideoInstance> |
62 | export type LoadByUUID = (uuid: string, t?: Sequelize.Transaction) => Promise<VideoInstance> | 65 | export type LoadByUUID = (uuid: string, t?: Sequelize.Transaction) => Bluebird<VideoInstance> |
63 | export type LoadLocalVideoByUUID = (uuid: string, t?: Sequelize.Transaction) => Promise<VideoInstance> | 66 | export type LoadByUrl = (url: string, t?: Sequelize.Transaction) => Bluebird<VideoInstance> |
64 | export type LoadByHostAndUUID = (fromHost: string, uuid: string, t?: Sequelize.Transaction) => Promise<VideoInstance> | 67 | export type LoadLocalVideoByUUID = (uuid: string, t?: Sequelize.Transaction) => Bluebird<VideoInstance> |
65 | export type LoadAndPopulateAuthor = (id: number) => Promise<VideoInstance> | 68 | export type LoadByHostAndUUID = (fromHost: string, uuid: string, t?: Sequelize.Transaction) => Bluebird<VideoInstance> |
66 | export type LoadAndPopulateAuthorAndPodAndTags = (id: number) => Promise<VideoInstance> | 69 | export type LoadAndPopulateAccount = (id: number) => Bluebird<VideoInstance> |
67 | export type LoadByUUIDAndPopulateAuthorAndPodAndTags = (uuid: string) => Promise<VideoInstance> | 70 | export type LoadAndPopulateAccountAndPodAndTags = (id: number) => Bluebird<VideoInstance> |
71 | export type LoadByUUIDAndPopulateAccountAndPodAndTags = (uuid: string) => Bluebird<VideoInstance> | ||
68 | 72 | ||
69 | export type RemoveThumbnail = (this: VideoInstance) => Promise<void> | 73 | export type RemoveThumbnail = (this: VideoInstance) => Promise<void> |
70 | export type RemovePreview = (this: VideoInstance) => Promise<void> | 74 | export type RemovePreview = (this: VideoInstance) => Promise<void> |
@@ -77,16 +81,17 @@ export interface VideoClass { | |||
77 | list: VideoMethods.List | 81 | list: VideoMethods.List |
78 | listForApi: VideoMethods.ListForApi | 82 | listForApi: VideoMethods.ListForApi |
79 | listUserVideosForApi: VideoMethods.ListUserVideosForApi | 83 | listUserVideosForApi: VideoMethods.ListUserVideosForApi |
80 | listOwnedAndPopulateAuthorAndTags: VideoMethods.ListOwnedAndPopulateAuthorAndTags | 84 | listOwnedAndPopulateAccountAndTags: VideoMethods.ListOwnedAndPopulateAccountAndTags |
81 | listOwnedByAuthor: VideoMethods.ListOwnedByAuthor | 85 | listOwnedByAccount: VideoMethods.ListOwnedByAccount |
82 | load: VideoMethods.Load | 86 | load: VideoMethods.Load |
83 | loadAndPopulateAuthor: VideoMethods.LoadAndPopulateAuthor | 87 | loadAndPopulateAccount: VideoMethods.LoadAndPopulateAccount |
84 | loadAndPopulateAuthorAndPodAndTags: VideoMethods.LoadAndPopulateAuthorAndPodAndTags | 88 | loadAndPopulateAccountAndPodAndTags: VideoMethods.LoadAndPopulateAccountAndPodAndTags |
85 | loadByHostAndUUID: VideoMethods.LoadByHostAndUUID | 89 | loadByHostAndUUID: VideoMethods.LoadByHostAndUUID |
86 | loadByUUID: VideoMethods.LoadByUUID | 90 | loadByUUID: VideoMethods.LoadByUUID |
91 | loadByUrl: VideoMethods.LoadByUrl | ||
87 | loadLocalVideoByUUID: VideoMethods.LoadLocalVideoByUUID | 92 | loadLocalVideoByUUID: VideoMethods.LoadLocalVideoByUUID |
88 | loadByUUIDAndPopulateAuthorAndPodAndTags: VideoMethods.LoadByUUIDAndPopulateAuthorAndPodAndTags | 93 | loadByUUIDAndPopulateAccountAndPodAndTags: VideoMethods.LoadByUUIDAndPopulateAccountAndPodAndTags |
89 | searchAndPopulateAuthorAndPodAndTags: VideoMethods.SearchAndPopulateAuthorAndPodAndTags | 94 | searchAndPopulateAccountAndPodAndTags: VideoMethods.SearchAndPopulateAccountAndPodAndTags |
90 | } | 95 | } |
91 | 96 | ||
92 | export interface VideoAttributes { | 97 | export interface VideoAttributes { |
@@ -104,7 +109,9 @@ export interface VideoAttributes { | |||
104 | likes?: number | 109 | likes?: number |
105 | dislikes?: number | 110 | dislikes?: number |
106 | remote: boolean | 111 | remote: boolean |
112 | url: string | ||
107 | 113 | ||
114 | parentId?: number | ||
108 | channelId?: number | 115 | channelId?: number |
109 | 116 | ||
110 | VideoChannel?: VideoChannelInstance | 117 | VideoChannel?: VideoChannelInstance |
@@ -132,16 +139,18 @@ export interface VideoInstance extends VideoClass, VideoAttributes, Sequelize.In | |||
132 | removePreview: VideoMethods.RemovePreview | 139 | removePreview: VideoMethods.RemovePreview |
133 | removeThumbnail: VideoMethods.RemoveThumbnail | 140 | removeThumbnail: VideoMethods.RemoveThumbnail |
134 | removeTorrent: VideoMethods.RemoveTorrent | 141 | removeTorrent: VideoMethods.RemoveTorrent |
135 | toAddRemoteJSON: VideoMethods.ToAddRemoteJSON | 142 | toActivityPubObject: VideoMethods.ToActivityPubObject |
136 | toFormattedJSON: VideoMethods.ToFormattedJSON | 143 | toFormattedJSON: VideoMethods.ToFormattedJSON |
137 | toFormattedDetailsJSON: VideoMethods.ToFormattedDetailsJSON | 144 | toFormattedDetailsJSON: VideoMethods.ToFormattedDetailsJSON |
138 | toUpdateRemoteJSON: VideoMethods.ToUpdateRemoteJSON | ||
139 | optimizeOriginalVideofile: VideoMethods.OptimizeOriginalVideofile | 145 | optimizeOriginalVideofile: VideoMethods.OptimizeOriginalVideofile |
140 | transcodeOriginalVideofile: VideoMethods.TranscodeOriginalVideofile | 146 | transcodeOriginalVideofile: VideoMethods.TranscodeOriginalVideofile |
141 | getOriginalFileHeight: VideoMethods.GetOriginalFileHeight | 147 | getOriginalFileHeight: VideoMethods.GetOriginalFileHeight |
142 | getEmbedPath: VideoMethods.GetEmbedPath | 148 | getEmbedPath: VideoMethods.GetEmbedPath |
143 | getDescriptionPath: VideoMethods.GetDescriptionPath | 149 | getDescriptionPath: VideoMethods.GetDescriptionPath |
144 | getTruncatedDescription: VideoMethods.GetTruncatedDescription | 150 | getTruncatedDescription: VideoMethods.GetTruncatedDescription |
151 | getCategoryLabel: VideoMethods.GetCategoryLabel | ||
152 | getLicenceLabel: VideoMethods.GetLicenceLabel | ||
153 | getLanguageLabel: VideoMethods.GetLanguageLabel | ||
145 | 154 | ||
146 | setTags: Sequelize.HasManySetAssociationsMixin<TagAttributes, string> | 155 | setTags: Sequelize.HasManySetAssociationsMixin<TagAttributes, string> |
147 | addVideoFile: Sequelize.HasManyAddAssociationMixin<VideoFileAttributes, string> | 156 | addVideoFile: Sequelize.HasManyAddAssociationMixin<VideoFileAttributes, string> |
@@ -149,3 +158,4 @@ export interface VideoInstance extends VideoClass, VideoAttributes, Sequelize.In | |||
149 | } | 158 | } |
150 | 159 | ||
151 | export interface VideoModel extends VideoClass, Sequelize.Model<VideoInstance, VideoAttributes> {} | 160 | export interface VideoModel extends VideoClass, Sequelize.Model<VideoInstance, VideoAttributes> {} |
161 | |||