]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/types/plugins/register-server-option.model.ts
Merge branch 'release/5.0.0' into develop
[github/Chocobozzz/PeerTube.git] / server / types / plugins / register-server-option.model.ts
index 473990eb6a2a920f4c50b922fd6708efff5071d2..df419fff47239576630c6f7dffcc2dc4e58f3379 100644 (file)
@@ -1,4 +1,5 @@
 import { Response, Router } from 'express'
+import { Server } from 'http'
 import { Logger } from 'winston'
 import { ActorModel } from '@server/models/actor/actor'
 import {
@@ -14,15 +15,15 @@ import {
   RegisterServerSettingOptions,
   ServerConfig,
   ThumbnailType,
-  UserRole,
   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
@@ -37,6 +38,8 @@ export type PeerTubeHelpers = {
 
     removeVideo: (videoId: number) => Promise<void>
 
+    ffprobe: (path: string) => Promise<any>
+
     getFiles: (id: number | string) => Promise<{
       webtorrent: {
         videoFiles: {
@@ -68,6 +71,9 @@ export type PeerTubeHelpers = {
   config: {
     getWebserverUrl: () => string
 
+    // PeerTube >= 5.1
+    getServerListeningConfig: () => { hostname: string, port: number }
+
     getServerConfig: () => Promise<ServerConfig>
   }
 
@@ -82,15 +88,25 @@ export type PeerTubeHelpers = {
   }
 
   server: {
+    // PeerTube >= 5.0
+    getHTTPServer: () => Server
+
     getServerActor: () => Promise<ActorModel>
   }
 
+  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
@@ -98,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<MUserDefault>
+
+    // PeerTube >= 4.3
+    loadById: (id: number) => Promise<MUserDefault>
   }
 }
 
@@ -137,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
 }