-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,
PluginStorageManager,
+ PluginTranscodingManager,
PluginVideoCategoryManager,
PluginVideoLanguageManager,
PluginVideoLicenceManager,
PluginVideoPrivacyManager,
RegisterServerHookOptions,
RegisterServerSettingOptions,
+ ServerConfig,
+ UserRole,
VideoBlacklistCreate
} from '@shared/models'
import { MVideoThumbnail } from '../models'
videos: {
loadByUrl: (url: string) => Promise<MVideoThumbnail>
+ loadByIdOrUUID: (id: number | string) => Promise<MVideoThumbnail>
removeVideo: (videoId: number) => Promise<void>
}
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<{
+ id?: string
+ username: string
+ email: string
+ blocked: boolean
+ role: UserRole
+ } | undefined>
+ }
}
export type RegisterServerOptions = {
videoPrivacyManager: PluginVideoPrivacyManager
playlistPrivacyManager: PluginPlaylistPrivacyManager
+ transcodingManager: PluginTranscodingManager
+
registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
unregisterIdAndPassAuth: (authName: string) => void