1 import { Router } from 'express'
2 import { Logger } from 'winston'
3 import { ActorModel } from '@server/models/activitypub/actor'
5 PluginPlaylistPrivacyManager,
8 PluginTranscodingManager,
9 PluginVideoCategoryManager,
10 PluginVideoLanguageManager,
11 PluginVideoLicenceManager,
12 PluginVideoPrivacyManager,
13 RegisterServerHookOptions,
14 RegisterServerSettingOptions,
17 } from '@shared/models'
18 import { MVideoThumbnail } from '../models'
20 RegisterServerAuthExternalOptions,
21 RegisterServerAuthExternalResult,
22 RegisterServerAuthPassOptions
23 } from './register-server-auth.model'
25 export type PeerTubeHelpers = {
33 loadByUrl: (url: string) => Promise<MVideoThumbnail>
34 loadByIdOrUUID: (id: number | string) => Promise<MVideoThumbnail>
36 removeVideo: (videoId: number) => Promise<void>
40 getWebserverUrl: () => string
42 getServerConfig: () => Promise<ServerConfig>
46 blockServer: (options: { byAccountId: number, hostToBlock: string }) => Promise<void>
47 unblockServer: (options: { byAccountId: number, hostToUnblock: string }) => Promise<void>
48 blockAccount: (options: { byAccountId: number, handleToBlock: string }) => Promise<void>
49 unblockAccount: (options: { byAccountId: number, handleToUnblock: string }) => Promise<void>
51 blacklistVideo: (options: { videoIdOrUUID: number | string, createOptions: VideoBlacklistCreate }) => Promise<void>
52 unblacklistVideo: (options: { videoIdOrUUID: number | string }) => Promise<void>
56 getServerActor: () => Promise<ActorModel>
60 getBaseStaticRoute: () => string
64 export type RegisterServerOptions = {
65 registerHook: (options: RegisterServerHookOptions) => void
67 registerSetting: (options: RegisterServerSettingOptions) => void
69 settingsManager: PluginSettingsManager
71 storageManager: PluginStorageManager
73 videoCategoryManager: PluginVideoCategoryManager
74 videoLanguageManager: PluginVideoLanguageManager
75 videoLicenceManager: PluginVideoLicenceManager
77 videoPrivacyManager: PluginVideoPrivacyManager
78 playlistPrivacyManager: PluginPlaylistPrivacyManager
80 transcodingManager: PluginTranscodingManager
82 registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
83 registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
84 unregisterIdAndPassAuth: (authName: string) => void
85 unregisterExternalAuth: (authName: string) => void
87 // Get plugin router to create custom routes
88 // Base routes of this router are
89 // * /plugins/:pluginName/:pluginVersion/router/...
90 // * /plugins/:pluginName/router/...
93 peertubeHelpers: PeerTubeHelpers