register-server-option.model.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { Router } from 'express'
  2. import { Logger } from 'winston'
  3. import { ActorModel } from '@server/models/activitypub/actor'
  4. import {
  5. PluginPlaylistPrivacyManager,
  6. PluginSettingsManager,
  7. PluginStorageManager,
  8. PluginVideoCategoryManager,
  9. PluginVideoLanguageManager,
  10. PluginVideoLicenceManager,
  11. PluginVideoPrivacyManager,
  12. RegisterServerHookOptions,
  13. RegisterServerSettingOptions,
  14. VideoBlacklistCreate
  15. } from '@shared/models'
  16. import { MVideoThumbnail } from '../models'
  17. import {
  18. RegisterServerAuthExternalOptions,
  19. RegisterServerAuthExternalResult,
  20. RegisterServerAuthPassOptions
  21. } from './register-server-auth.model'
  22. export type PeerTubeHelpers = {
  23. logger: Logger
  24. database: {
  25. query: Function
  26. }
  27. videos: {
  28. loadByUrl: (url: string) => Promise<MVideoThumbnail>
  29. removeVideo: (videoId: number) => Promise<void>
  30. }
  31. config: {
  32. getWebserverUrl: () => string
  33. }
  34. moderation: {
  35. blockServer: (options: { byAccountId: number, hostToBlock: string }) => Promise<void>
  36. unblockServer: (options: { byAccountId: number, hostToUnblock: string }) => Promise<void>
  37. blockAccount: (options: { byAccountId: number, handleToBlock: string }) => Promise<void>
  38. unblockAccount: (options: { byAccountId: number, handleToUnblock: string }) => Promise<void>
  39. blacklistVideo: (options: { videoIdOrUUID: number | string, createOptions: VideoBlacklistCreate }) => Promise<void>
  40. unblacklistVideo: (options: { videoIdOrUUID: number | string }) => Promise<void>
  41. }
  42. server: {
  43. getServerActor: () => Promise<ActorModel>
  44. }
  45. }
  46. export type RegisterServerOptions = {
  47. registerHook: (options: RegisterServerHookOptions) => void
  48. registerSetting: (options: RegisterServerSettingOptions) => void
  49. settingsManager: PluginSettingsManager
  50. storageManager: PluginStorageManager
  51. videoCategoryManager: PluginVideoCategoryManager
  52. videoLanguageManager: PluginVideoLanguageManager
  53. videoLicenceManager: PluginVideoLicenceManager
  54. videoPrivacyManager: PluginVideoPrivacyManager
  55. playlistPrivacyManager: PluginPlaylistPrivacyManager
  56. registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
  57. registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
  58. unregisterIdAndPassAuth: (authName: string) => void
  59. unregisterExternalAuth: (authName: string) => void
  60. // Get plugin router to create custom routes
  61. // Base routes of this router are
  62. // * /plugins/:pluginName/:pluginVersion/router/...
  63. // * /plugins/:pluginName/router/...
  64. getRouter(): Router
  65. peertubeHelpers: PeerTubeHelpers
  66. }