-import { Router } from 'express'
+import { Response, Router } from 'express'
import { Logger } from 'winston'
-import { ActorModel } from '@server/models/activitypub/actor'
+import { ActorModel } from '@server/models/actor/actor'
import {
PluginPlaylistPrivacyManager,
PluginSettingsManager,
PluginVideoPrivacyManager,
RegisterServerHookOptions,
RegisterServerSettingOptions,
+ ServerConfig,
+ ThumbnailType,
VideoBlacklistCreate
} from '@shared/models'
-import { MVideoThumbnail } from '../models'
+import { MUserDefault, MVideoThumbnail } from '../models'
import {
RegisterServerAuthExternalOptions,
RegisterServerAuthExternalResult,
videos: {
loadByUrl: (url: string) => Promise<MVideoThumbnail>
+ loadByIdOrUUID: (id: number | string) => Promise<MVideoThumbnail>
removeVideo: (videoId: number) => Promise<void>
+
+ ffprobe: (path: string) => Promise<any>
+
+ getFiles: (id: number | string) => Promise<{
+ webtorrent: {
+ videoFiles: {
+ path: string // Could be null if using remote storage
+ url: string
+ resolution: number
+ size: number
+ fps: number
+ }[]
+ }
+
+ hls: {
+ videoFiles: {
+ path: string // Could be null if using remote storage
+ url: string
+ resolution: number
+ size: number
+ fps: number
+ }[]
+ }
+
+ thumbnails: {
+ type: ThumbnailType
+ path: string
+ }[]
+ }>
}
config: {
getWebserverUrl: () => string
+
+ getServerConfig: () => Promise<ServerConfig>
}
moderation: {
server: {
getServerActor: () => Promise<ActorModel>
}
+
+ plugin: {
+ // PeerTube >= 3.2
+ getBaseStaticRoute: () => string
+
+ // PeerTube >= 3.2
+ getBaseRouterRoute: () => string
+
+ // PeerTube >= 3.2
+ getDataDirectoryPath: () => string
+ }
+
+ user: {
+ // PeerTube >= 3.2
+ getAuthUser: (response: Response) => Promise<MUserDefault>
+
+ // PeerTube >= 4.3
+ loadById: (id: number) => Promise<MUserDefault>
+ }
}
export type RegisterServerOptions = {