diff options
Diffstat (limited to 'server/types/plugins')
-rw-r--r-- | server/types/plugins/index.ts | 1 | ||||
-rw-r--r-- | server/types/plugins/register-server-option.model.ts | 21 | ||||
-rw-r--r-- | server/types/plugins/register-server-websocket-route.model.ts | 8 |
3 files changed, 29 insertions, 1 deletions
diff --git a/server/types/plugins/index.ts b/server/types/plugins/index.ts index de30ff2ab..bf9c35d49 100644 --- a/server/types/plugins/index.ts +++ b/server/types/plugins/index.ts | |||
@@ -1,3 +1,4 @@ | |||
1 | export * from './plugin-library.model' | 1 | export * from './plugin-library.model' |
2 | export * from './register-server-auth.model' | 2 | export * from './register-server-auth.model' |
3 | export * from './register-server-option.model' | 3 | export * from './register-server-option.model' |
4 | export * from './register-server-websocket-route.model' | ||
diff --git a/server/types/plugins/register-server-option.model.ts b/server/types/plugins/register-server-option.model.ts index fb4f12a4c..1e2bd830e 100644 --- a/server/types/plugins/register-server-option.model.ts +++ b/server/types/plugins/register-server-option.model.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | import { Response, Router } from 'express' | 1 | import { Response, Router } from 'express' |
2 | import { Server } from 'http' | ||
2 | import { Logger } from 'winston' | 3 | import { Logger } from 'winston' |
3 | import { ActorModel } from '@server/models/actor/actor' | 4 | import { ActorModel } from '@server/models/actor/actor' |
4 | import { | 5 | import { |
@@ -16,12 +17,13 @@ import { | |||
16 | ThumbnailType, | 17 | ThumbnailType, |
17 | VideoBlacklistCreate | 18 | VideoBlacklistCreate |
18 | } from '@shared/models' | 19 | } from '@shared/models' |
19 | import { MUserDefault, MVideoThumbnail } from '../models' | 20 | import { MUserDefault, MVideo, MVideoThumbnail, UserNotificationModelForApi } from '../models' |
20 | import { | 21 | import { |
21 | RegisterServerAuthExternalOptions, | 22 | RegisterServerAuthExternalOptions, |
22 | RegisterServerAuthExternalResult, | 23 | RegisterServerAuthExternalResult, |
23 | RegisterServerAuthPassOptions | 24 | RegisterServerAuthPassOptions |
24 | } from './register-server-auth.model' | 25 | } from './register-server-auth.model' |
26 | import { RegisterServerWebSocketRouteOptions } from './register-server-websocket-route.model' | ||
25 | 27 | ||
26 | export type PeerTubeHelpers = { | 28 | export type PeerTubeHelpers = { |
27 | logger: Logger | 29 | logger: Logger |
@@ -83,15 +85,25 @@ export type PeerTubeHelpers = { | |||
83 | } | 85 | } |
84 | 86 | ||
85 | server: { | 87 | server: { |
88 | // PeerTube >= 5.0 | ||
89 | getHTTPServer: () => Server | ||
90 | |||
86 | getServerActor: () => Promise<ActorModel> | 91 | getServerActor: () => Promise<ActorModel> |
87 | } | 92 | } |
88 | 93 | ||
94 | socket: { | ||
95 | sendNotification: (userId: number, notification: UserNotificationModelForApi) => void | ||
96 | sendVideoLiveNewState: (video: MVideo) => void | ||
97 | } | ||
98 | |||
89 | plugin: { | 99 | plugin: { |
90 | // PeerTube >= 3.2 | 100 | // PeerTube >= 3.2 |
91 | getBaseStaticRoute: () => string | 101 | getBaseStaticRoute: () => string |
92 | 102 | ||
93 | // PeerTube >= 3.2 | 103 | // PeerTube >= 3.2 |
94 | getBaseRouterRoute: () => string | 104 | getBaseRouterRoute: () => string |
105 | // PeerTube >= 5.0 | ||
106 | getBaseWebSocketRoute: () => string | ||
95 | 107 | ||
96 | // PeerTube >= 3.2 | 108 | // PeerTube >= 3.2 |
97 | getDataDirectoryPath: () => string | 109 | getDataDirectoryPath: () => string |
@@ -135,5 +147,12 @@ export type RegisterServerOptions = { | |||
135 | // * /plugins/:pluginName/router/... | 147 | // * /plugins/:pluginName/router/... |
136 | getRouter(): Router | 148 | getRouter(): Router |
137 | 149 | ||
150 | // PeerTube >= 5.0 | ||
151 | // Register WebSocket route | ||
152 | // Base routes of the WebSocket router are | ||
153 | // * /plugins/:pluginName/:pluginVersion/ws/... | ||
154 | // * /plugins/:pluginName/ws/... | ||
155 | registerWebSocketRoute: (options: RegisterServerWebSocketRouteOptions) => void | ||
156 | |||
138 | peertubeHelpers: PeerTubeHelpers | 157 | peertubeHelpers: PeerTubeHelpers |
139 | } | 158 | } |
diff --git a/server/types/plugins/register-server-websocket-route.model.ts b/server/types/plugins/register-server-websocket-route.model.ts new file mode 100644 index 000000000..edf64f66b --- /dev/null +++ b/server/types/plugins/register-server-websocket-route.model.ts | |||
@@ -0,0 +1,8 @@ | |||
1 | import { IncomingMessage } from 'http' | ||
2 | import { Duplex } from 'stream' | ||
3 | |||
4 | export type RegisterServerWebSocketRouteOptions = { | ||
5 | route: string | ||
6 | |||
7 | handler: (request: IncomingMessage, socket: Duplex, head: Buffer) => any | ||
8 | } | ||