1 import * as Bluebird from 'bluebird'
2 import { Router } from 'express'
3 import { Logger } from 'winston'
4 import { ActorModel } from '@server/models/activitypub/actor'
6 PluginPlaylistPrivacyManager,
9 PluginVideoCategoryManager,
10 PluginVideoLanguageManager,
11 PluginVideoLicenceManager,
12 PluginVideoPrivacyManager,
13 RegisterServerHookOptions,
14 RegisterServerSettingOptions,
16 } from '@shared/models'
17 import { MVideoThumbnail } from '../models'
19 RegisterServerAuthExternalOptions,
20 RegisterServerAuthExternalResult,
21 RegisterServerAuthPassOptions
22 } from './register-server-auth.model'
24 export type PeerTubeHelpers = {
32 loadByUrl: (url: string) => Bluebird<MVideoThumbnail>
34 removeVideo: (videoId: number) => Promise<void>
38 getWebserverUrl: () => string
42 blockServer: (options: { byAccountId: number, hostToBlock: string }) => Promise<void>
43 unblockServer: (options: { byAccountId: number, hostToUnblock: string }) => Promise<void>
44 blockAccount: (options: { byAccountId: number, handleToBlock: string }) => Promise<void>
45 unblockAccount: (options: { byAccountId: number, handleToUnblock: string }) => Promise<void>
47 blacklistVideo: (options: { videoIdOrUUID: number | string, createOptions: VideoBlacklistCreate }) => Promise<void>
48 unblacklistVideo: (options: { videoIdOrUUID: number | string }) => Promise<void>
52 getServerActor: () => Promise<ActorModel>
56 export type RegisterServerOptions = {
57 registerHook: (options: RegisterServerHookOptions) => void
59 registerSetting: (options: RegisterServerSettingOptions) => void
61 settingsManager: PluginSettingsManager
63 storageManager: PluginStorageManager
65 videoCategoryManager: PluginVideoCategoryManager
66 videoLanguageManager: PluginVideoLanguageManager
67 videoLicenceManager: PluginVideoLicenceManager
69 videoPrivacyManager: PluginVideoPrivacyManager
70 playlistPrivacyManager: PluginPlaylistPrivacyManager
72 registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
73 registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
74 unregisterIdAndPassAuth: (authName: string) => void
75 unregisterExternalAuth: (authName: string) => void
77 // Get plugin router to create custom routes
78 // Base routes of this router are
79 // * /plugins/:pluginName/:pluginVersion/router/...
80 // * /plugins/:pluginName/router/...
83 peertubeHelpers: PeerTubeHelpers