X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftypes%2Fplugins%2Fregister-server-option.model.ts;h=df419fff47239576630c6f7dffcc2dc4e58f3379;hb=3f3530c3dbc5339b4cba53710b8568b4ad39152e;hp=2432b7ac4eab7a4727579b041bbea33cf275529a;hpb=b31d72625dd32143a45277528b90bb67a881f249;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/types/plugins/register-server-option.model.ts b/server/types/plugins/register-server-option.model.ts index 2432b7ac4..df419fff4 100644 --- a/server/types/plugins/register-server-option.model.ts +++ b/server/types/plugins/register-server-option.model.ts @@ -1,6 +1,7 @@ -import { Router, Response } from 'express' +import { Response, Router } from 'express' +import { Server } from 'http' import { Logger } from 'winston' -import { ActorModel } from '@server/models/activitypub/actor' +import { ActorModel } from '@server/models/actor/actor' import { PluginPlaylistPrivacyManager, PluginSettingsManager, @@ -13,15 +14,16 @@ import { RegisterServerHookOptions, RegisterServerSettingOptions, ServerConfig, - UserRole, + ThumbnailType, VideoBlacklistCreate } from '@shared/models' -import { MVideoThumbnail } from '../models' +import { MUserDefault, MVideo, MVideoThumbnail, UserNotificationModelForApi } from '../models' import { RegisterServerAuthExternalOptions, RegisterServerAuthExternalResult, RegisterServerAuthPassOptions } from './register-server-auth.model' +import { RegisterServerWebSocketRouteOptions } from './register-server-websocket-route.model' export type PeerTubeHelpers = { logger: Logger @@ -35,11 +37,43 @@ export type PeerTubeHelpers = { loadByIdOrUUID: (id: number | string) => Promise removeVideo: (videoId: number) => Promise + + ffprobe: (path: string) => Promise + + 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 + // PeerTube >= 5.1 + getServerListeningConfig: () => { hostname: string, port: number } + getServerConfig: () => Promise } @@ -54,15 +88,25 @@ export type PeerTubeHelpers = { } server: { + // PeerTube >= 5.0 + getHTTPServer: () => Server + getServerActor: () => Promise } + socket: { + sendNotification: (userId: number, notification: UserNotificationModelForApi) => void + sendVideoLiveNewState: (video: MVideo) => void + } + plugin: { // PeerTube >= 3.2 getBaseStaticRoute: () => string // PeerTube >= 3.2 getBaseRouterRoute: () => string + // PeerTube >= 5.0 + getBaseWebSocketRoute: () => string // PeerTube >= 3.2 getDataDirectoryPath: () => string @@ -70,13 +114,10 @@ export type PeerTubeHelpers = { user: { // PeerTube >= 3.2 - getAuthUser: (response: Response) => Promise<{ - id?: string - username: string - email: string - blocked: boolean - role: UserRole - } | undefined> + getAuthUser: (response: Response) => Promise + + // PeerTube >= 4.3 + loadById: (id: number) => Promise } } @@ -109,5 +150,12 @@ export type RegisterServerOptions = { // * /plugins/:pluginName/router/... getRouter(): Router + // PeerTube >= 5.0 + // Register WebSocket route + // Base routes of the WebSocket router are + // * /plugins/:pluginName/:pluginVersion/ws/... + // * /plugins/:pluginName/ws/... + registerWebSocketRoute: (options: RegisterServerWebSocketRouteOptions) => void + peertubeHelpers: PeerTubeHelpers }