1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 02:09:37 +02:00

Expose PeerTube socket to plugins (#5239)

* server(pluginHelpers): add socket

* test(plugins): add socket cases

* fixes after review

* Update plugin-helpers.ts

* Update plugin-helpers.ts
This commit is contained in:
kontrollanten 2022-10-10 15:18:31 +02:00 committed by GitHub
parent 213bb3bb58
commit c43ed8e862
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 65 additions and 2 deletions

View file

@ -13,13 +13,14 @@ import { ServerBlocklistModel } from '@server/models/server/server-blocklist'
import { UserModel } from '@server/models/user/user'
import { VideoModel } from '@server/models/video/video'
import { VideoBlacklistModel } from '@server/models/video/video-blacklist'
import { MPlugin } from '@server/types/models'
import { MPlugin, MVideo, UserNotificationModelForApi } from '@server/types/models'
import { PeerTubeHelpers } from '@server/types/plugins'
import { VideoBlacklistCreate, VideoStorage } from '@shared/models'
import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../blocklist'
import { ServerConfigManager } from '../server-config-manager'
import { blacklistVideo, unblacklistVideo } from '../video-blacklist'
import { VideoPathManager } from '../video-path-manager'
import { PeerTubeSocket } from '../peertube-socket'
function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHelpers {
const logger = buildPluginLogger(npmName)
@ -35,6 +36,8 @@ function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHel
const plugin = buildPluginRelatedHelpers(pluginModel, npmName)
const socket = buildSocketHelpers()
const user = buildUserHelpers()
return {
@ -45,6 +48,7 @@ function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHel
moderation,
plugin,
server,
socket,
user
}
}
@ -218,6 +222,17 @@ function buildPluginRelatedHelpers (plugin: MPlugin, npmName: string) {
}
}
function buildSocketHelpers () {
return {
sendNotification: (userId: number, notification: UserNotificationModelForApi) => {
PeerTubeSocket.Instance.sendNotification(userId, notification)
},
sendVideoLiveNewState: (video: MVideo) => {
PeerTubeSocket.Instance.sendVideoLiveNewState(video)
}
}
}
function buildUserHelpers () {
return {
loadById: (id: number) => {