1 import { Response, Router } from 'express'
2 import { Logger } from 'winston'
3 import { ActorModel } from '@server/models/actor/actor'
5 PluginPlaylistPrivacyManager,
8 PluginTranscodingManager,
9 PluginVideoCategoryManager,
10 PluginVideoLanguageManager,
11 PluginVideoLicenceManager,
12 PluginVideoPrivacyManager,
13 RegisterServerHookOptions,
14 RegisterServerSettingOptions,
19 } from '@shared/models'
20 import { MVideoThumbnail } from '../models'
22 RegisterServerAuthExternalOptions,
23 RegisterServerAuthExternalResult,
24 RegisterServerAuthPassOptions
25 } from './register-server-auth.model'
27 export type PeerTubeHelpers = {
35 loadByUrl: (url: string) => Promise<MVideoThumbnail>
36 loadByIdOrUUID: (id: number | string) => Promise<MVideoThumbnail>
38 removeVideo: (videoId: number) => Promise<void>
40 ffprobe: (path: string) => Promise<any>
42 getFiles: (id: number | string) => Promise<{
45 path: string // Could be null if using remote storage
55 path: string // Could be null if using remote storage
71 getWebserverUrl: () => string
73 getServerConfig: () => Promise<ServerConfig>
77 blockServer: (options: { byAccountId: number, hostToBlock: string }) => Promise<void>
78 unblockServer: (options: { byAccountId: number, hostToUnblock: string }) => Promise<void>
79 blockAccount: (options: { byAccountId: number, handleToBlock: string }) => Promise<void>
80 unblockAccount: (options: { byAccountId: number, handleToUnblock: string }) => Promise<void>
82 blacklistVideo: (options: { videoIdOrUUID: number | string, createOptions: VideoBlacklistCreate }) => Promise<void>
83 unblacklistVideo: (options: { videoIdOrUUID: number | string }) => Promise<void>
87 getServerActor: () => Promise<ActorModel>
92 getBaseStaticRoute: () => string
95 getBaseRouterRoute: () => string
98 getDataDirectoryPath: () => string
103 getAuthUser: (response: Response) => Promise<{
116 export type RegisterServerOptions = {
117 registerHook: (options: RegisterServerHookOptions) => void
119 registerSetting: (options: RegisterServerSettingOptions) => void
121 settingsManager: PluginSettingsManager
123 storageManager: PluginStorageManager
125 videoCategoryManager: PluginVideoCategoryManager
126 videoLanguageManager: PluginVideoLanguageManager
127 videoLicenceManager: PluginVideoLicenceManager
129 videoPrivacyManager: PluginVideoPrivacyManager
130 playlistPrivacyManager: PluginPlaylistPrivacyManager
132 transcodingManager: PluginTranscodingManager
134 registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
135 registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
136 unregisterIdAndPassAuth: (authName: string) => void
137 unregisterExternalAuth: (authName: string) => void
139 // Get plugin router to create custom routes
140 // Base routes of this router are
141 // * /plugins/:pluginName/:pluginVersion/router/...
142 // * /plugins/:pluginName/router/...
145 peertubeHelpers: PeerTubeHelpers