X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fplugins%2Fplugin-helpers-builder.ts;h=d57c69ef0251f0c30353bb4fe7f726f681f494e5;hb=302eba0d898e38dca14739486441c27c0be6c62f;hp=dac6b3185409327eba9cf864c307c9ae5fa36e0b;hpb=6559da2821cfa37717fb6f607f76a505d549cc74;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/plugins/plugin-helpers-builder.ts b/server/lib/plugins/plugin-helpers-builder.ts index dac6b3185..d57c69ef0 100644 --- a/server/lib/plugins/plugin-helpers-builder.ts +++ b/server/lib/plugins/plugin-helpers-builder.ts @@ -1,19 +1,24 @@ -import { PeerTubeHelpers } from '@server/types/plugins' -import { sequelizeTypescript } from '@server/initializers/database' +import * as express from 'express' +import { join } from 'path' import { buildLogger } from '@server/helpers/logger' -import { VideoModel } from '@server/models/video/video' +import { CONFIG } from '@server/initializers/config' import { WEBSERVER } from '@server/initializers/constants' -import { ServerModel } from '@server/models/server/server' +import { sequelizeTypescript } from '@server/initializers/database' +import { AccountModel } from '@server/models/account/account' +import { AccountBlocklistModel } from '@server/models/account/account-blocklist' import { getServerActor } from '@server/models/application/application' -import { addServerInBlocklist, removeServerFromBlocklist, addAccountInBlocklist, removeAccountFromBlocklist } from '../blocklist' +import { ServerModel } from '@server/models/server/server' import { ServerBlocklistModel } from '@server/models/server/server-blocklist' -import { AccountModel } from '@server/models/account/account' +import { VideoModel } from '@server/models/video/video' +import { VideoBlacklistModel } from '@server/models/video/video-blacklist' +import { MPlugin } from '@server/types/models' +import { PeerTubeHelpers } from '@server/types/plugins' import { VideoBlacklistCreate } from '@shared/models' +import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../blocklist' +import { getServerConfig } from '../config' import { blacklistVideo, unblacklistVideo } from '../video-blacklist' -import { VideoBlacklistModel } from '@server/models/video/video-blacklist' -import { AccountBlocklistModel } from '@server/models/account/account-blocklist' -function buildPluginHelpers (npmName: string): PeerTubeHelpers { +function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHelpers { const logger = buildPluginLogger(npmName) const database = buildDatabaseHelpers() @@ -25,13 +30,19 @@ function buildPluginHelpers (npmName: string): PeerTubeHelpers { const moderation = buildModerationHelpers() + const plugin = buildPluginRelatedHelpers(pluginModel, npmName) + + const user = buildUserHelpers() + return { logger, database, videos, config, moderation, - server + plugin, + server, + user } } @@ -132,6 +143,26 @@ function buildConfigHelpers () { return { getWebserverUrl () { return WEBSERVER.URL + }, + + getServerConfig () { + return getServerConfig() } } } + +function buildPluginRelatedHelpers (plugin: MPlugin, npmName: string) { + return { + getBaseStaticRoute: () => `/plugins/${plugin.name}/${plugin.version}/static/`, + + getBaseRouterRoute: () => `/plugins/${plugin.name}/${plugin.version}/router/`, + + getDataDirectoryPath: () => join(CONFIG.STORAGE.PLUGINS_DIR, 'data', npmName) + } +} + +function buildUserHelpers () { + return { + getAuthUser: (res: express.Response) => res.locals.oauth?.token?.User + } +}